class Solution {
int res = -1;
int k;
public int kthLargest(TreeNode root, int k) {
this.k=k;
dfs(root);
return res;
}
private void dfs(TreeNode root){
if(root==null){
return ;
}
dfs(root.right); //本题采用二叉搜索树的中序遍历,只不过把原本中序的“左根右”,变成“右根左”
if(--k==0){ //然后找到这个序列下的第k个结点即可,返回此节点的值
res = root.val; //如果是要求第k小。就把“右根左”,变成"左根右"
}
dfs(root.left);
}
}
05-24
2548
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountBlack.png)