递归遍历二叉树
根据题意求第k大,优先遍历右子树(即较大的那一边),定义全局变量记录节点数,得到第 k 大后返回
class Solution {
public int kthLargest(TreeNode root, int k) {
find(root,k);
return ans;
}
int n = 0,ans = 0;
void find(TreeNode t, int k){
if(t == null || ans != 0)
return;
find(t.right, k);
n++;
if(n == k){
ans = t.val;
return;
}
find(t.left, k);
}
}