# LeetCode:Kth Smallest Element in a BST

### Kth Smallest Element in a BST

Total Accepted: 49142 Total Submissions: 128501 Difficulty: Medium

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it.

Note:
You may assume k is always valid, 1 ≤ k ≤ BST's total elements.

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?

Hint:

1. Try to utilize the property of a BST.
2. What if you could modify the BST node's structure?
3. The optimal runtime complexity is O(height of BST).

Credits:
Special thanks to @ts for adding this problem and creating all test cases.

Subscribe to see which companies asked this question

java code:

/**
* Definition for a binary tree node.
* public class TreeNode {
*     int val;
*     TreeNode left;
*     TreeNode right;
*     TreeNode(int x) { val = x; }
* }
*/
public class Solution {
public int kthSmallest(TreeNode root, int k) {

int count = countNode(root.left);

if(k == count + 1)
return root.val;
else if(k < count + 1)
return kthSmallest(root.left, k);
else // k > count + 1
return kthSmallest(root.right, k - count - 1);

}

// 自定义函数:计算树中结点个数
int countNode(TreeNode root) {
if(root == null) return 0;

return countNode(root.left) + countNode(root.right) + 1;
}

}

#### leetcode 230. Kth Smallest Element in a BST-递归|非递归

2016-05-24 11:17:50

#### leetcode 230: Kth Smallest Element in a BST

2015-07-07 06:14:58

#### LeetCode 230: Kth Smallest Element in a BST

2015-07-02 14:27:17

#### LeetCode 230. Kth Smallest Element in a BST 解题报告

2016-02-16 15:27:50

#### LeetCode-230. Kth Smallest Element in a BST (JAVA)二叉树第k小的数字

2017-04-29 10:36:27

#### [leetcode] 378. Kth Smallest Element in a Sorted Matrix

2016-08-02 16:38:33

#### [leetcode] 378. Kth Smallest Element in a Sorted Matrix 解题报告

2016-08-20 15:43:59

#### LeetCode—378. Kth Smallest Element in a Sorted Matrix

2016-08-02 10:20:37

#### 【Leetcode】Kth Smallest Element in a Sorted Matrix

2016-08-01 21:54:16

#### LeetCode 378. Kth Smallest Element in a Sorted Matrix 解题报告

2016-10-07 23:29:40