バイナリツリーを考えると、ルート・ノードからのすべてのパスは、リーフノードを返します。
説明:リーフノードは、ノードが子ノードを持たないです。
例:
入力:
1
/ \
23
\
5
出力:[ "1-> 2-> 5"、「1 - > 3「]
説明:リーフノード・パスへのすべてのルートノード:1-> 2-> 5 1-> 3
ソース:ボタン(LeetCode)滞在
リンクします。https://leetcode-cn.com/problems/binary-tree-paths
すべてのネットワークからの控除が著作権を保有。商業転載は許可公式、非商用の転載は、ソースを明記してくださいお問い合わせください。
/ ** *バイナリツリーノードの定義。 *公共のクラスのTreeNode { * int型のval; *のTreeNodeは左。 *ツリーノードを右。 *ツリーノード(INT X){ヴァル= X。} *} * / クラスソリューション{ パブリックリストの<string> binaryTreePaths(ツリーノードのルート){ リストの<string> RET = 新規のArrayList <> (); もし(ルート== nullの)リターンRET; (ルートを解決する "" 、RET)。 リターンRET; } 公共 のボイド(ツリーノードのルート、文字列CUR、リストの<string>解決RET){ 場合(ルート== NULL)リターン; CUR + = root.val。 もし(root.left == NULL && root.right == NULL ){ ret.add(CUR)。 } 他{ (root.left、CUR解決 " - >" + 、RET)を、 解決(root.right、CUR + " - >" 、RET)。 } } }