バイナリ ツリーが与えられた場合、そのノード値のボトムアップ レベルのトラバーサルを返します。 (つまり、リーフノードが配置されているレイヤーからルートノードが配置されているレイヤーまで、左から右にトラバースします) 例えば、二分木[3,9,20,null,null,15,7]が与えられた場合、 3 / \ 9 20 / \ 15 7 ボトムアップ レベルのトラバーサルを次のように返します。
解決策 1: BFS (幅優先探索)BFS は、各レイヤーのノードをレイヤーごとに走査します。この質問では各レイヤーのノード値を返す必要があるため、BFS はこの問題に非常に適しています。 BFS は補助構造としてキューを使用する必要があります。まずルート ノードをキューに入れてから、キューのトラバースを続けます。
複雑性分析
ソリューション 2: DFS (深さ優先探索)DFS は、ツリーのノードをその深さに沿ってトラバースし、ツリーのブランチを可能な限り深く検索します。 この問題における DFS の主な問題は、DFS がレベルを横断しないことです。再帰プロセス中に同じレベルのノードを同じリストに配置するには、再帰中に各ノードの深さを記録する必要があります。新しいノードに再帰する場合は、深さに対応するリストの最後にノードを配置します。 新しい深度 depth にトラバースするときに、depth に対応するリストが最終結果 res に作成されていない場合は、深度のすべてのノードを保存するために res に新しいリストを作成する必要があります。
複雑性分析:
|
<<: ボーダーライン上の質問:テクノロジー企業はAIアルゴリズムを使って従業員の採用と解雇を行っている
>>: 二分木の再帰的および非再帰的トラバーサルアルゴリズムテンプレート
顔認識は皆さんもよくご存知だと思います。過去2年間、顔認識技術の急速な発展に伴い、「顔スキャン」は徐...
[[211446]]この記事では、ロンドン大学ユニバーシティ・カレッジ (UCL) の Thomas...
長い間、私の携帯電話のパッケージには主に 400 分の通話時間 + 500M のネットワーク トラフ...
ディープラーニングでは、PyTorch と NumPy はデータの処理と変換によく使用される 2 つ...
[[185868]]スピーチの基本概念スピーチは複雑な現象です。それがどのように生成され、どのように...
機械学習やコンピューター ビジョンのプロジェクトで、画像の品質が低いという問題に遭遇したことはありま...
人間の目には、以下の 3 つの画像はそれぞれ異なるもの、つまり鳥、犬、馬に見えます。しかし、機械学習...
著者: 徐潔成校正:Yun Zhao誰も予想していなかったのは、人工知能の火が世界中に広がっていた時...
2020年、突然の公衆衛生事件により、医療用ロボットに大きな注目が集まりました。医療用ロボットは、...
[51CTO.com クイック翻訳] この 2 部構成のシリーズでは、numpy Python ライ...