# [leetcode] 230.Kth Smallest Element in a BST

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?

/**
* Definition for a binary tree node.
* struct TreeNode {
*     int val;
*     TreeNode *left;
*     TreeNode *right;
*     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
* };
*/
class Solution {
public:
int kthSmallest(TreeNode* root, int k) {
if(root == NULL)return 0;
int value = 0;
int index = 0;
InOrder(root, k, value, index);
return value;
}
void InOrder(TreeNode* root, int k, int& value, int& before) {
if(root == NULL)return;
InOrder(root->left, k, value, before);
before++;
if(before == k){
value = root->val;
before = k;
return;
}
else if(before > k)return;
InOrder(root->right, k, value, before);
}
};
• 本文已收录于以下专栏：

## leetcode 230: Kth Smallest Element in a BST

leetcode 230: Kth Smallest Element in a BST python java c++
• xudli
• 2015年07月07日 06:14
• 9356

## LeetCode 230: Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. Not...
• sunao2002002
• 2015年07月02日 14:27
• 5598

## LeetCode 230: Kth Smallest Element in a BST 查找二叉排序树

• SunliyMonkey
• 2015年09月02日 15:34
• 1305

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

• happyaaaaaaaaaaa
• 2016年05月24日 11:17
• 1087

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

230. Kth Smallest Element in a BST My Submissions Question Total Accepted: 35869 Total Su...
• bruce128
• 2016年02月16日 15:27
• 1543

## leetcode230:Kth Smallest Element in a BST（medium）

• qq_18297933
• 2016年08月21日 21:27
• 291

## LeetCode 230. Kth Smallest Element in a BST（二叉搜索树中的第K个元素）

• jmspan
• 2016年04月05日 11:16
• 631

## 230.Kth Smallest Element in a BST

Given a binary search tree, write a function kthSmallest to find the kth smallest element in it. N...
• sjt091110317
• 2015年07月02日 16:02
• 257

## leetCode 230.Kth Smallest Element in a BST

//找到一个二叉查找树的第K小的个元素 //中序遍历二叉查找树，第K次访问的值就是整个二叉树的第K小的元素 struct TreeNode { int val; TreeNode *l...
• u013994536
• 2016年04月15日 08:59
• 120

## [LeetCode]230.Kth Smallest Element in a BST

• SunnyYoona
• 2015年08月03日 11:34
• 1187

举报原因： 您举报文章：[leetcode] 230.Kth Smallest Element in a BST 色情 政治 抄袭 广告 招聘 骂人 其他 (最多只允许输入30个字)