比如,对于下面这个二叉树,它所有的路径为:
8 -> 3 -> 1
8 -> 2 -> 6 -> 4
8 -> 3 -> 6 -> 7
8 -> 10 -> 14 -> 13
怎么用Java去实现?
欢迎选择我的课程,让我们一起见证您的进步~~
再帰が必要ない場合は、最初に深さを使用してください。 スタックを使用して、スタックが空でない場合は、最初にルート ノードをスタックにプッシュし、現在のノードの中央値を出力します。次に、最初に右側のサブツリーをスタックにプッシュし、次に左側のサブツリーをプッシュします。スタックに追加し、スタックが空かどうかを判断し、ループします... 手順は次のとおりです: 1) まずバイナリ ツリーのルート ノードをスタックにプッシュします 2) スタックが空かどうかを判断します (そうでない場合)。 、スタックからポップしてポップツリーを出力します ノードの値3) ポップツリーノードの右のサブツリーがスタックにプッシュされます4) ポップツリーノードの左のサブツリーがスタックにプッシュされます 5) (2)にループバックしますこれはメソッドの前に見たものですが、質問者さんの助けになるでしょうか? リーリー
再帰をスタックに置き換えます: https://zh.coursera.org/learn...
まずは深さ? 。 。
幅優先トラバーサルを使用し、ノードのすべての親ノードを状態に保存し、葉ノードに到達した後に出力します。
再帰が必要ない場合は、最初に深さを使用してください。
スタックを使用して、スタックが空でない場合は、最初にルート ノードをスタックにプッシュし、現在のノードの中央値を出力します。次に、最初に右側のサブツリーをスタックにプッシュし、次に左側のサブツリーをプッシュします。スタックに追加し、スタックが空かどうかを判断し、ループします... 手順は次のとおりです:
1) まずバイナリ ツリーのルート ノードをスタックにプッシュします
2) スタックが空かどうかを判断します (そうでない場合)。 、スタックからポップしてポップツリーを出力します ノードの値
3) ポップツリーノードの右のサブツリーがスタックにプッシュされます
4) ポップツリーノードの左のサブツリーがスタックにプッシュされます
5) (2)にループバックします
これはメソッドの前に見たものですが、質問者さんの助けになるでしょうか?
リーリー
再帰をスタックに置き換えます: https://zh.coursera.org/learn...
まずは深さ? 。 。
幅優先トラバーサルを使用し、ノードのすべての親ノードを状態に保存し、葉ノードに到達した後に出力します。