二叉搜索树的第k大节点

问题:
给定一棵二叉搜索树,请找出其中第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);
    }

你可能感兴趣的:(leetcode,算法,职场和发展)