因为此处是BST树,所以中序遍历是升序的有序遍历,所遍历的第k个节点即是目标节点。
此是对二叉树遍历的一点复习吧。
void middleTraverse(TreeNode *root, int k, int &count, int &val) {
if(count > k || nullptr == root)
return;
middleTraverse(root->left, k, count, val);
if(++count == k) {
val = root->val;
return;
}
middleTraverse(root->right, k, count, val);
}
int kthSmallest(TreeNode* root, int k) {
int count = 0, val = 0;
middleTraverse(root, k, count, val);
return val;
}
BST树中序遍历找第K小元素

本文介绍了一种在二叉搜索树(BST)中寻找第k小元素的方法,通过中序遍历的方式,利用BST的性质,找到目标节点。此方法适用于需要在有序序列中查找特定位置元素的场景。
980

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



