LeetCode-二分探索木のK番目に大きいノード

タイトル説明

問題解決のアイデア

  • まず、通過したすべての要素を格納するコレクションを作成します。
  • DFSを使用してバイナリツリーをトラバースし、結果をコレクションに格納します。
  • コレクションを配列に変換する
  • 並べ替え方法で降順で並べ替える
  • ソートされた配列の添え字[k-1]を持つ要素は、二分探索木のK番目に大きい要素です。

実装コード

var kthLargest = function(root, k) {
    
    

    const set = new Set();
    const dfs = function(node) {
    
    
        if (node === null) {
    
    
            return;
        }

        set.add(node.val);
        dfs(node.left);
        dfs(node.right);
    }
    dfs(root);
    const arr = [...set];
    arr.sort((a,b) => {
    
    
        return b-a;
    });

    return arr[k-1];

};

おすすめ

転載: blog.csdn.net/sinat_41696687/article/details/115039619