K番目のツリーノードを提供62バイナリ検索ツリーを受賞します

タイトル説明

二分探索木を考えると、その中の最初のk小さいノードを検索してください。例えば、(5,3,7,2,4,6,8)と、第3の接続点に係る数値は、4要約です。

問題解決のためのアイデア

二叉搜索树按照中序遍历的顺序打印出来正好就是排序好的顺序。
所以,按照中序遍历顺序找到第k个结点就是结果。
 

コードは以下の通りです

   INTインデックス= 0; // カウンタ 
            のTreeNode KthNode(ルートツリーノード、int型K)
            { 
                IF(!ルート= ヌル){ // プレオーダー見つけるk番目 
                    のTreeNodeノード= KthNode(root.left、K);
                     IF(ノード!= nullのリターン・ノード、
                    インデックス ++ ;
                     IF(インデックス== K)を
                         返す;ルート
                    ノード = KthNode(root.right、K)を。
                    もし(!ノード= nullのリターン・ノード。
                } 
                戻り ヌル
            }

 

おすすめ

転載: www.cnblogs.com/Transkai/p/11422728.html