算法 - 如何不用递归 列出 树(多叉) 中根节点到叶节点的所有路径(Java)
天蓬老师
天蓬老师 2017-04-18 10:51:58
0
4
611

比如,对于下面这个二叉树,它所有的路径为:

8 -> 3 -> 1

8 -> 2 -> 6 -> 4

8 -> 3 -> 6 -> 7

8 -> 10 -> 14 -> 13

怎么用Java去实现?

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全員に返信(4)
阿神

再帰が必要ない場合は、最初に深さを使用してください。
スタックを使用して、スタックが空でない場合は、最初にルート ノードをスタックにプッシュし、現在のノードの中央値を出力します。次に、最初に右側のサブツリーをスタックにプッシュし、次に左側のサブツリーをプッシュします。スタックに追加し、スタックが空かどうかを判断し、ループします... 手順は次のとおりです:
1) まずバイナリ ツリーのルート ノードをスタックにプッシュします
2) スタックが空かどうかを判断します (そうでない場合)。 、スタックからポップしてポップツリーを出力します ノードの値
3) ポップツリーノードの右のサブツリーがスタックにプッシュされます
4) ポップツリーノードの左のサブツリーがスタックにプッシュされます
5) (2)にループバックします
これはメソッドの前に見たものですが、質問者さんの助けになるでしょうか?
リーリー

いいねを押す +0
Ty80

再帰をスタックに置き換えます: https://zh.coursera.org/learn...

いいねを押す +0
大家讲道理

まずは深さ? 。 。

いいねを押す +0
洪涛

幅優先トラバーサルを使用し、ノードのすべての親ノードを状態に保存し、葉ノードに到達した後に出力します。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!