算法思想:二叉搜索树,左《右,利用此特点,中序遍历倒序为递减,符合题意第k个
时间复杂度:O(N)
空间复杂度:O(N)
边界条件:root为空,k=0
补充知识:
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
int k,res;
public int kthLargest(TreeNode root, int k) {
this.k=k; //只留循环和返回
dfs(root);
return res;
}
public void dfs(TreeNode root){ //按顺序访问
if(root==null) return ;
dfs(root.right);
if(k==0) return ; //为了的到第k个后返回
if(--k==0) res=root.val; //每次-1,并且记录
dfs(root.left);
}
}