剑指offer(54)
剑指offer(54)
剑指 Offer 54. 二叉搜索树的第k大节点
难度简单294
给定一棵二叉搜索树,请找出其中第 k
大的节点的值。
示例 1:
输入: root = [3,1,4,null,2], k = 1
3
/ \
1 4
\
2
输出: 4
示例 2:
输入: root = [5,3,6,2,4,null,null,1], k = 3
5
/ \
3 6
/ \
2 4
/
1
输出: 4
限制:
- 1 ≤ k ≤ 二叉搜索树元素个数
二叉搜索树中序遍历是有序的,如果是左-根-右就是升序,右-根-左就是降序
本题找到答案就可以退出递归
class Solution {
public:
int res=0;
int kthLargest(TreeNode* root, int k) {
traver(root,k);
return res;
}
void traver(TreeNode* root,int& k){
if(root==nullptr)return ;
traver(root->right,k);
k--;
if(!k){
res = root->val; //根
return;
}
traver(root->left,k);
}
};
本文来自博客园,作者:{BailanZ},转载请注明原文链接:https://www.cnblogs.com/BailanZ/p/16223883.html