[검지 offer] 54.두 갈래 나무의 K대 노드

54. 두 갈래 나무의 K대 노드


면접 문제두 갈래 검색 트리의 k 큰 노드
난이도
두 갈래 검색 트리를 정해 주십시오. 그중에서 두 번째로 큰 노드를 찾아 주십시오.
예 1:
 : root = [3,1,4,null,2], k = 1
   3
  / \
 1   4
  \
   2
 : 4

예 2:
 : root = [5,3,6,2,4,null,null,1], k = 3
       5
      / \
     3   6
    / \
   2   4
  /
 1
 : 4
//      k 。 k==0 。
    int res,k;
    public int kthLargest(TreeNode root, int k) {
        if(root == null)    return -1;
        this.k = k;
        dfs(root);
        return res;
    }

    private void dfs(TreeNode root){
        if(root == null)    return;
        dfs(root.right);
        if(k<0) return;
        if(--k == 0)    res = root.val;
        dfs(root.left);
    }

좋은 웹페이지 즐겨찾기