题目描述
题解
中序遍历:
二叉搜索树中序遍历是从小到大
。先遍历右子树,再遍历左子树,就变成从大到小
了。用target计数,target等于0时,就是我们要找的第K大节点
class Solution {
int res = 0;
int target = 0;
public int kthLargest(TreeNode root, int k) {
target = k;
dfs(root);
return res;
}
public void dfs(TreeNode root){
if (root == null || target < 0) return;
dfs(root.right);
target--;
if (target == 0) res = root.val;
dfs(root.left);
}
}