オファー(Java版)第二十九タイトルを獲得:整数とバイナリツリーを入力し、バイナリツリーノードの値及び入力された整数のすべてのパスをプリントアウト。定義は、リーフノードにツリーダウンのルート・ノードから始まるパスへのパスを形成することにより、ノードを横断してきました。

/ *
バイナリツリーと一定値の経路。
入力バイナリ整数、ノードのバイナリプリント値と、全ての入力整数へのパス。
定義は、リーフノードにツリーダウンのルート・ノードから始まるパスへのパスを形成することにより、ノードを横断してきました。
* /

輸入java.utilの。*;

パブリッククラスClass29 {

パブリッククラスツリーノード{
int型のval = 0;
TreeNodeのは左= NULLを。
ツリーノードを右= NULL;

公共のTreeNode(int型のval){
this.val =ヴァル。
}
}

プライベートのArrayList <整数> = nodelistと新規のArrayList <整数>();
民間のArrayList <ArrayListを<Integer型>> pathlistに=新しいのArrayList <ArrayListを<Integer型>>();

公共のArrayList <のArrayList <整数>> FindPath(ツリーノードのノード、INTターゲット){
IF(ノード== NULL){
戻りpathlistに。
}
nodeList.add(node.val)。
ターゲット- = node.val。
IF(ターゲット== 0 && node.left == NULL && node.right == NULL){
int型I = 0。
一方、(I <pathList.size()&& nodeList.size()<pathList.get(I).size()){
I ++。
}
pathList.add(I、新規のArrayList <整数>(nodelistと))。


= FindPath pathlistに(node.right、ターゲット);
}
//最後のノード除去
nodeList.remove(nodeList.sizeを() - 1);
戻りpathlistに;
}

パブリック静的無効メイン(文字列[] args){
// TODO自動生成方法スタブ

}

}

おすすめ

転載: www.cnblogs.com/zhuozige/p/12509942.html