k番目のノードのバイナリ検索ツリー - オフ牛

説明タイトル
バイナリ検索ツリー所与は、その中にk番目に小さいノードを見つけます。例えば、(5,3,7,2,4,6,8)と、第3の接続点に係る数値は、4要約です。
溶液:順トラバーサルでは、K <= 0考慮し、ここで、kは、ノードの総数よりも大きいです

class Solution {
    int cnt = 0;
    TreeNode * knode = NULL;
public:
    void DFS(TreeNode* pRoot, int k)
    {
        if (pRoot->left && cnt<k)
            DFS(pRoot->left, k);
        if (++cnt == k)
            knode = pRoot;
        if (pRoot->right && cnt<k)
            DFS(pRoot->right, k);
    }
    TreeNode* KthNode(TreeNode* pRoot, int k)
    {
        if (pRoot==NULL || k <= 0)
            return NULL;
        DFS(pRoot, k);
        return knode;
    }
};
公開された315元の記事 ウォンの賞賛119 ビュー110 000 +

おすすめ

転載: blog.csdn.net/w144215160044/article/details/104962619