ソードフィンガーオファーインタビュー質問54:二分探索木のk番目に大きいノード

この質問は、中間の順序で直接トラバースできます。

 

class Solution {
    int i = 0;
    int res = 0;
    public int kthLargest(TreeNode root, int k) {
        midTree(root, k);
        return res;
    }
    public void midTree(TreeNode root, int k){
        if(root.right!=null){
            midTree(root.right, k);
        }
        
        i++;
        if(i == k){
            res =  root.val;
        }
        if(root.left!=null){
             midTree(root.left, k);
        }
    }
}

 

おすすめ

転載: blog.csdn.net/qq_40473204/article/details/114986216