问题:
给定一棵二叉搜索树,请找出其中第k大的节点。
示例:
输入: root = [3,1,4,null,2], k = 1
3
/
1 4
2
输出: 4
思路:
搜索二叉树是左小右大,所以通过中序遍历二叉树找到第k大的数就行了。
代码:
public int kthLargest(TreeNode root, int k) {
List<Integer> han = new ArrayList();
lhl(root,han);
return han.get(han.size()-k);
}
public void lhl(TreeNode root,List<Integer> han){
if(root == null) return ;
lhl(root.left,han);
han.add(root.val);
lhl(root.right,han);
}