Find kth smallest element in binary search tree
up vote
2
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 more 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 tree
add a comment |
up vote
2
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 more 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 tree
Is the tree mutable? IsO(k)
memory acceptable?
– vnp
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
Do you have control over theTreeNode
class?
– tinstaafl
22 mins ago
add a comment |
up vote
2
down vote
favorite
up vote
2
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 more 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 tree
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 more 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 tree
java algorithm interview-questions tree
edited 3 mins ago
200_success
127k15148412
127k15148412
asked 1 hour ago
user5447339
15318
15318
Is the tree mutable? IsO(k)
memory acceptable?
– vnp
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
Do you have control over theTreeNode
class?
– tinstaafl
22 mins ago
add a comment |
Is the tree mutable? IsO(k)
memory acceptable?
– vnp
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
Do you have control over theTreeNode
class?
– tinstaafl
22 mins ago
Is the tree mutable? Is
O(k)
memory acceptable?– vnp
1 hour ago
Is the tree mutable? Is
O(k)
memory acceptable?– vnp
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
Do you have control over the
TreeNode
class?– tinstaafl
22 mins ago
Do you have control over the
TreeNode
class?– tinstaafl
22 mins ago
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%2ffind-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
Is the tree mutable? Is
O(k)
memory acceptable?– vnp
1 hour ago
I didn't asked this question to the interviewer but let's say if it is not mutable then can we optimize anything? And let's say if it is mutable then how efficiently we can do it?
– user5447339
1 hour ago
Do you have control over the
TreeNode
class?– tinstaafl
22 mins ago