efficiently find kth smallest element in binary search tree?
up vote
0
down vote
favorite
I was faced with below interview question today and I came up with below solution but somehow interviewer was not happy. I am not sure why..
Given a binary search tree, find the kth smallest element in it.
Is there any better or efficient way to do this problem?
/*****************************************************
*
* Kth Smallest Iterative
*
******************************************************/
public int kthSmallestIterative(TreeNode root, int k) {
Stack<TreeNode> st = new Stack<>();
while (root != null) {
st.push(root);
root = root.left;
}
while (k != 0) {
TreeNode n = st.pop();
k--;
if (k == 0)
return n.data;
TreeNode right = n.right;
while (right != null) {
st.push(right);
right = right.left;
}
}
return -1;
}
I mentioned time and space complexity as O(n). My iterative version takes extra space. Is there any way to do it without any extra space?
java algorithm interview-questions
add a comment |
up vote
0
down vote
favorite
I was faced with below interview question today and I came up with below solution but somehow interviewer was not happy. I am not sure why..
Given a binary search tree, find the kth smallest element in it.
Is there any better or efficient way to do this problem?
/*****************************************************
*
* Kth Smallest Iterative
*
******************************************************/
public int kthSmallestIterative(TreeNode root, int k) {
Stack<TreeNode> st = new Stack<>();
while (root != null) {
st.push(root);
root = root.left;
}
while (k != 0) {
TreeNode n = st.pop();
k--;
if (k == 0)
return n.data;
TreeNode right = n.right;
while (right != null) {
st.push(right);
right = right.left;
}
}
return -1;
}
I mentioned time and space complexity as O(n). My iterative version takes extra space. Is there any way to do it without any extra space?
java algorithm interview-questions
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I was faced with below interview question today and I came up with below solution but somehow interviewer was not happy. I am not sure why..
Given a binary search tree, find the kth smallest element in it.
Is there any better or efficient way to do this problem?
/*****************************************************
*
* Kth Smallest Iterative
*
******************************************************/
public int kthSmallestIterative(TreeNode root, int k) {
Stack<TreeNode> st = new Stack<>();
while (root != null) {
st.push(root);
root = root.left;
}
while (k != 0) {
TreeNode n = st.pop();
k--;
if (k == 0)
return n.data;
TreeNode right = n.right;
while (right != null) {
st.push(right);
right = right.left;
}
}
return -1;
}
I mentioned time and space complexity as O(n). My iterative version takes extra space. Is there any way to do it without any extra space?
java algorithm interview-questions
I was faced with below interview question today and I came up with below solution but somehow interviewer was not happy. I am not sure why..
Given a binary search tree, find the kth smallest element in it.
Is there any better or efficient way to do this problem?
/*****************************************************
*
* Kth Smallest Iterative
*
******************************************************/
public int kthSmallestIterative(TreeNode root, int k) {
Stack<TreeNode> st = new Stack<>();
while (root != null) {
st.push(root);
root = root.left;
}
while (k != 0) {
TreeNode n = st.pop();
k--;
if (k == 0)
return n.data;
TreeNode right = n.right;
while (right != null) {
st.push(right);
right = right.left;
}
}
return -1;
}
I mentioned time and space complexity as O(n). My iterative version takes extra space. Is there any way to do it without any extra space?
java algorithm interview-questions
java algorithm interview-questions
asked 3 mins ago
user5447339
14318
14318
add a comment |
add a comment |
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
active
oldest
votes
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f208668%2fefficiently-find-kth-smallest-element-in-binary-search-tree%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown