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.
Just read the question carefully, then, there is no problem. BST.....
void inorder(TreeNode* root, int &res, int &idx,int k){
if (root==NULL || idx>=k) return;
inorder(root->left,res,idx,k);
idx++;
if (idx ==k ) res = root->val;
inorder(root->right,res,idx,k);
}
int kthSmallest(TreeNode* root, int k) {
int res;
int idx=0;
inorder(root,res,idx,k);
return res;
}
本文介绍了一个用于查找二叉搜索树中第K小元素的方法。通过递归地进行中序遍历,可以有效地找到指定位置的元素。文章提供了一个简洁的C++实现示例。
648

被折叠的 条评论
为什么被折叠?



