K番目のノードAcWing 70バイナリ検索ツリー(安全性を証明するために提供)

二分探索木を考えると、その中の最初のk小さいノードを検索してください。

あなたは木とkが存在していることを前提とし、1≤k≤ツリーの概要ポイントがあります。

サンプル
入力:ルート= [2、1、 3、NULL、NULL、NULL、NULL]、K = 3

2

/
1 3

出力:3

class Solution {
public:
    TreeNode* ans;
    TreeNode* kthNode(TreeNode* root, int k) {
        if(!root) return root;
        dfs(root,k);
        return ans;
    }
    
    void dfs(TreeNode* root,int &k) {
        if(!root) return;
        dfs(root -> left,k);
        k--;
        if(!k) ans = root;
        dfs(root -> right,k);
    }
};
公開された843元の記事 ウォン称賛28 ビュー40000 +

おすすめ

転載: blog.csdn.net/tomjobs/article/details/104980596
おすすめ