件名の説明:
そして、再構築したバイナリツリーの先行順走査でバイナリツリーの先行順走査で結果を入力してください。仮定結果先行順走査順序と重複する数字の入力は無料です。例えば、前順走査シーケンス{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)。 ブレーク; } ツリーを返します。 } }