Kth Smallest Element in a BST
Given a binary search tree, write a functionkthSmallestto find the kth smallest element in it.
Note: You may assume k is always valid, 1 ≤ k ≤ BST's total elements.
Example 1:
Input:
root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
2
Output:
1Example 2:
Input:
root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
Output:
3Follow up: What if the BST is modified (insert/delete operations) often and you need to find the kth smallest frequently? How would you optimize the kthSmallest routine?
Analysis
In order traversal of BST actually returns the element in ascending order, thus intuitively, traverse the BST with in-order, and return the kth element in the result, would be the kth smallest element in a BST.
Solution
DFS in order traverse
Last updated
Was this helpful?