安全性を証明するために、バイナリツリーの再構築オファー

件名の説明:

そして、再構築したバイナリツリーの先行順走査でバイナリツリーの先行順走査で結果を入力してください。仮定結果先行順走査順序と重複する数字の入力は無料です。例えば、前順走査シーケンス{1,2,4,7,3,5,6,8}及び{4,7,2,1,5,3,8,6}順序トラバーサル順序、及び再構成された二分木に入る前リターン。

 

 

パブリッククラスソリューション{ 
    クラスのTreeNode { 
        int型のval; 
        TreeNodeの左。
        右のTreeNode; 

        ツリーノード(INT X){ 
            ヴァル= X。
        } 
    } 


    公共のTreeNode reConstructBinaryTree {([]のint []プレINT)
        (PRE = NULL && = NULLで!)もし
            戻り溶液(前、中、0、pre.length - 1、0、in.length - 1); 
        そうでない
            場合はnull; 
    } 

    プライベートツリーノード溶液(INT [] PREは、INT []、INT PSTART、INT PEND、int型ISTART、IENDをint型で){ 

        IF(PSTART>保留|| ISTART> IEND)
            リターンヌル。

        ツリーノードツリー=新しいツリーノード(PRE [PSTART])。

        (INTルート= ISTART;ルート<= IEND;ルート++)のための
            IF(IN [ルート] ==事前[PSTART]){ 
                int型leftLen =ルート- ISTART。
                tree.left =溶液(前、中、PSTART + 1、PSTART + leftLen、ISTART、根- 1)。
                tree.right =溶液(前、中、PSTART + leftLen + 1、PEND、ルート+ 1、IEND)。
                ブレーク; 
            } 
        ツリーを返します。
    } 
}

 

  

 

おすすめ

転載: www.cnblogs.com/zty-lyq/p/11449441.html