给定一棵二叉搜索树,请找出其中第k大的节点。
只要知道二叉搜索树中序遍历,从小到大排列
class Solution {
int k;
int res;
public int kthLargest(TreeNode root, int k) {
this.k = k;
recur(root);
return res;
}
private void recur(TreeNode node) {
if (node.right != null) recur(node.right);
k--;
if (k == 0) {
res = node.val;
return;
}
if (node.left != null) recur(node.left);
}
}
网友评论