面试题54:二叉搜索树的第k大节点
文章目录
题目
给定一棵二叉搜索树,请找出其中第k大的节点。
考点
以 右-根-左 的方式遍历二叉搜索树,可以得到逆序序列
LeetCode代码
class Solution {
public:
void reInorder(TreeNode *root, int k, int &cur, int &res){
if(root == nullptr || cur > k)return;
reInorder(root->right,k,cur,res);
++cur;
if(cur == k) res = root->val;
reInorder(root->left,k,cur,res);
}
int kthLargest(TreeNode* root, int k) {
int cur = 0,res;
reInorder(root,k,cur,res);
return res;
}
};