题目
思路
- 二叉树中序遍历左根右,出现有序序列,再找第k个即可,不知道题解会不会有更简单的方法,去看一下。
- 想要求左根右的第k个,可以视为求右根左的第length-k个
- 而求length-k的时候,正好直接用k减出来就行了。
代码
int ans=0;
int k_1=0;
public int kthLargest(TreeNode root, int k){
ans = root.val;
k_1=k;
DFS(root);
return ans;
}
public void DFS(TreeNode root){
if(root==null) return;
DFS(root.right);
if(--k_1==0) {
ans=root.val;
return;
}
DFS(root.left);
}