二分木で与えられた合計ですべてのパスを印刷するアルゴリズム

hytriutucx

以下は面接の質問です。

各ノードに値が含まれるバイナリツリー(必ずしもBSTである必要はありません)が与えられます。合計がその値になるすべてのパスを出力するアルゴリズムを設計します。ツリー内の任意のパスにすることができることに注意してください。ルートから開始する必要はありません。

ルートで始まるツリー内のすべてのパスが指定された合計を持っていることを見つけることはできますが、ルートで始まらないパスについてはそうすることができません。

クリスチャン・スティーバー

ええと、これは木であり、グラフではありません。したがって、次のようなことができます。

擬似コード:

global ResultList

function ProcessNode(CurrentNode, CurrentSum)
    CurrentSum+=CurrentNode->Value
    if (CurrentSum==SumYouAreLookingFor) AddNodeTo ResultList
    for all Children of CurrentNode
          ProcessNode(Child,CurrentSum)

さて、これはあなたにルートから始まるパスを与えます。ただし、小さな変更を加えることができます。

    for all Children of CurrentNode
          ProcessNode(Child,CurrentSum)
          ProcessNode(Child,0)

少し考えてみる必要があるかもしれませんが(私は他のことに忙しいです)、これは基本的にツリー内のすべてのノードをルートとする同じアルゴリズムを実行する必要があります

編集:これは実際には「エンドノード」のみを提供します。ただし、これはツリーであるため、これらのエンドノードから開始して、必要な合計が得られるまで上に戻ることができます。

編集2:そしてもちろん、すべての値が正の場合、現在の合計が必要な合計以上であれば、降下を中止できます

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

二分木が与えられた場合、各深さのすべてのノードのリンクリストを作成するアルゴリズムを設計します

分類Dev

二分探索木で最小合計を見つけるためのアルゴリズムの改善

分類Dev

与えられた二分木で最大サイズKのすべてのルート化されたサブツリーを見つける方法は?

分類Dev

二分木を列挙するためのアルゴリズムの改善

分類Dev

二分木が与えられた場合、すべてのルートからリーフへのパスを見つけます

分類Dev

すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

二分木ですべてのパスを検索する

分類Dev

二分木で最大パスを見つけるためのPythonアルゴリズムが希望どおりに機能しない

分類Dev

別のbstの要素から二分探索木を構築するアルゴリズム

分類Dev

二分木最大経路合計アルゴリズム

分類Dev

二分木アルゴリズムのj番目のレベルでi番目の要素を取得する方法についての議論

分類Dev

Cでの二分木ビンパッキングアルゴリズム

分類Dev

この二分探索木アルゴリズムで再帰がどのように機能するか

分類Dev

二分木のデバッグ合計アルゴリズム

分類Dev

二分探索木と並べ替え(およびその他の基本的なアルゴリズム)、C#とJavaで記述されたコードはほとんど交換可能ですか?

分類Dev

二分探索木のようなアルゴリズムに基づいて配列を適合させる

分類Dev

再帰なしで非二分木をトラバースするアルゴリズムは何ですか(スタックを使用)

分類Dev

二分木の深さを決定するアルゴリズムで再帰がどのように機能するかを説明しますか?

分類Dev

二分探索木に挿入するための2つの同様のアルゴリズム

分類Dev

与えられた数までのすべての数を因数分解する高速アルゴリズム

分類Dev

二分探索アルゴリズムで最後のインデックスを追跡する方法は?

分類Dev

[階層化された]非二分木からのすべてのパス

分類Dev

すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

分類Dev

二分木でパスの合計を計算するためのポストオーダートラバーサル

分類Dev

与えられた時間計算量でアルゴリズムを作成する

分類Dev

Javaで二分木の要素を合計する

分類Dev

二分木ジグザグレベルの順序トラバーサルに対するこのアルゴリズムの時間計算量はどのくらいですか?

分類Dev

二分木をミラーリングするアルゴリズムを作成/実装する方法

分類Dev

ニュートン法と二分法のアルゴリズムの時間計算量はどれくらいですか?

Related 関連記事

  1. 1

    二分木が与えられた場合、各深さのすべてのノードのリンクリストを作成するアルゴリズムを設計します

  2. 2

    二分探索木で最小合計を見つけるためのアルゴリズムの改善

  3. 3

    与えられた二分木で最大サイズKのすべてのルート化されたサブツリーを見つける方法は?

  4. 4

    二分木を列挙するためのアルゴリズムの改善

  5. 5

    二分木が与えられた場合、すべてのルートからリーフへのパスを見つけます

  6. 6

    すべてのパス合計を見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  7. 7

    二分木ですべてのパスを検索する

  8. 8

    二分木で最大パスを見つけるためのPythonアルゴリズムが希望どおりに機能しない

  9. 9

    別のbstの要素から二分探索木を構築するアルゴリズム

  10. 10

    二分木最大経路合計アルゴリズム

  11. 11

    二分木アルゴリズムのj番目のレベルでi番目の要素を取得する方法についての議論

  12. 12

    Cでの二分木ビンパッキングアルゴリズム

  13. 13

    この二分探索木アルゴリズムで再帰がどのように機能するか

  14. 14

    二分木のデバッグ合計アルゴリズム

  15. 15

    二分探索木と並べ替え(およびその他の基本的なアルゴリズム)、C#とJavaで記述されたコードはほとんど交換可能ですか?

  16. 16

    二分探索木のようなアルゴリズムに基づいて配列を適合させる

  17. 17

    再帰なしで非二分木をトラバースするアルゴリズムは何ですか(スタックを使用)

  18. 18

    二分木の深さを決定するアルゴリズムで再帰がどのように機能するかを説明しますか?

  19. 19

    二分探索木に挿入するための2つの同様のアルゴリズム

  20. 20

    与えられた数までのすべての数を因数分解する高速アルゴリズム

  21. 21

    二分探索アルゴリズムで最後のインデックスを追跡する方法は?

  22. 22

    [階層化された]非二分木からのすべてのパス

  23. 23

    すべての組み合わせを見つけるためのこのアルゴリズムの時間計算量はどれくらいですか?

  24. 24

    二分木でパスの合計を計算するためのポストオーダートラバーサル

  25. 25

    与えられた時間計算量でアルゴリズムを作成する

  26. 26

    Javaで二分木の要素を合計する

  27. 27

    二分木ジグザグレベルの順序トラバーサルに対するこのアルゴリズムの時間計算量はどのくらいですか?

  28. 28

    二分木をミラーリングするアルゴリズムを作成/実装する方法

  29. 29

    ニュートン法と二分法のアルゴリズムの時間計算量はどれくらいですか?

ホットタグ

アーカイブ