バイナリツリーのすべてのルートからリーフへのパスを出力する

ロクナス:

私はjavaを使用してバイナリツリーのすべてのルートからリーフへのパスを印刷しようとしています。

public void printAllRootToLeafPaths(Node node,ArrayList path) 
{
    if(node==null)
    {
        return;
    }
    path.add(node.data);

    if(node.left==null && node.right==null)
    {
        System.out.println(path);
        return;
    }
    else
    {
        printAllRootToLeafPaths(node.left,path);
        printAllRootToLeafPaths(node.right,path);
    }      
}

メインメソッドでは:

 bst.printAllRootToLeafPaths(root, new ArrayList());

しかし、それは間違った出力を与えます。

与えられた木:

   5
  / \
 /   \
1     8
 \    /\
  \  /  \
  3  6   9

予想される出力:

[5、1、3]

[5、8、6]

[5、8、9]

しかし、生成された出力:

[5、1、3]

[5、1、3、8、6]

[5、1、3、8、6、9]

誰かがそれを理解できますか...

フィリップ・フォンドラシェク:

再帰メソッドを呼び出すには:

printAllRootToLeafPaths(node.left, new ArrayList(path));
printAllRootToLeafPaths(node.right, new ArrayList(path));

pathを渡す代わりにnew ArrayList(path)、すべてのメソッド呼び出しで単一のオブジェクトを使用するということです。つまり、元の呼び出し元に戻ると、オブジェクトは以前と同じ状態ではありません。

新しいオブジェクトを作成し、それを元の値に初期化するだけです。このようにして、元のオブジェクトは変更されません。

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

方向も特定しながら、バイナリツリーのすべてのルートからリーフへのパスを取得します

分類Dev

一般的な(非バイナリ)リストリストツリーにリーフへのすべてのパスを一覧表示する

分類Dev

ルートノードからリーフノードへのすべてのパスを出力します-javascript

分類Dev

Pythonでバイナリツリーからすべてのパスを印刷する

分類Dev

xgboost.dumpからバイナリツリーのすべてのパスを検索します

分類Dev

(Java)バイナリツリーからブール値を出力する関数の(述語のような)インターフェースを使用する

分類Dev

特別なグラフでリーフからルートへのすべてのパスを取得する方法

分類Dev

ファイルからデータを読み取る入力intの順列からすべての可能なバイナリツリーを生成する

分類Dev

ディレクトリツリーから.cファイルのパス名を出力するPython

分類Dev

igraphRのルートからリーフまでの有向ツリーグラフのすべてのパス

分類Dev

ツリーを構築してから、すべての葉をトラバースする方法(ルートノードからリーフまで毎回)?

分類Dev

partykitからctreeを使用して、各ターミナルノードのリーフからルートへのフルパスを取得する

分類Dev

Java 出力ストリーム、db から取得するすべてのデータの前にファイルのダウンロードをトリガー

分類Dev

Schemeのバイナリツリーのすべてのノードで同じインデックスをフィルタリングしますか?

分類Dev

バイナリリリースでリソースファイルへのパスを提供するにはどうすればよいですか?

分類Dev

直接接続されたすべてのノードが辞書のリストとして存在する場合、バイナリツリーのすべての可能なパスを印刷するにはどうすればよいですか?

分類Dev

エコー出力をファイルへのリダイレクトからエスケープする

分類Dev

Rフォロワーリストからユーザーのツイートへのすべての返信を検索します

分類Dev

与えられたバイナリツリーは、各深さ(BFSまたはDFS)のすべてのノードのリンクリストを作成します

分類Dev

Pythonのリストのリストからバイナリツリーを作成します

分類Dev

adbバイナリインストールへのパスは何ですか

分類Dev

adbバイナリインストールへのパスは何ですか

分類Dev

Javaでのバイナリツリーのすべてのノードのトラバース

分類Dev

ツリー内のすべてのリーフノードをトラバースするC#

分類Dev

ディレクトリツリー内のすべてのファイル名を取得して出力するより迅速な方法はありますか?

分類Dev

Javaのバイナリ検索ツリーから削除する

分類Dev

特定のツリーエンコーディングでルートからリーフへのパスを取得する

分類Dev

ツリーデータ構造を使用せずに、ノードとそのすべての子をバイナリツリーから削除します

分類Dev

バイナリからMySQLをインストールする際の問題

Related 関連記事

  1. 1

    方向も特定しながら、バイナリツリーのすべてのルートからリーフへのパスを取得します

  2. 2

    一般的な(非バイナリ)リストリストツリーにリーフへのすべてのパスを一覧表示する

  3. 3

    ルートノードからリーフノードへのすべてのパスを出力します-javascript

  4. 4

    Pythonでバイナリツリーからすべてのパスを印刷する

  5. 5

    xgboost.dumpからバイナリツリーのすべてのパスを検索します

  6. 6

    (Java)バイナリツリーからブール値を出力する関数の(述語のような)インターフェースを使用する

  7. 7

    特別なグラフでリーフからルートへのすべてのパスを取得する方法

  8. 8

    ファイルからデータを読み取る入力intの順列からすべての可能なバイナリツリーを生成する

  9. 9

    ディレクトリツリーから.cファイルのパス名を出力するPython

  10. 10

    igraphRのルートからリーフまでの有向ツリーグラフのすべてのパス

  11. 11

    ツリーを構築してから、すべての葉をトラバースする方法(ルートノードからリーフまで毎回)?

  12. 12

    partykitからctreeを使用して、各ターミナルノードのリーフからルートへのフルパスを取得する

  13. 13

    Java 出力ストリーム、db から取得するすべてのデータの前にファイルのダウンロードをトリガー

  14. 14

    Schemeのバイナリツリーのすべてのノードで同じインデックスをフィルタリングしますか?

  15. 15

    バイナリリリースでリソースファイルへのパスを提供するにはどうすればよいですか?

  16. 16

    直接接続されたすべてのノードが辞書のリストとして存在する場合、バイナリツリーのすべての可能なパスを印刷するにはどうすればよいですか?

  17. 17

    エコー出力をファイルへのリダイレクトからエスケープする

  18. 18

    Rフォロワーリストからユーザーのツイートへのすべての返信を検索します

  19. 19

    与えられたバイナリツリーは、各深さ(BFSまたはDFS)のすべてのノードのリンクリストを作成します

  20. 20

    Pythonのリストのリストからバイナリツリーを作成します

  21. 21

    adbバイナリインストールへのパスは何ですか

  22. 22

    adbバイナリインストールへのパスは何ですか

  23. 23

    Javaでのバイナリツリーのすべてのノードのトラバース

  24. 24

    ツリー内のすべてのリーフノードをトラバースするC#

  25. 25

    ディレクトリツリー内のすべてのファイル名を取得して出力するより迅速な方法はありますか?

  26. 26

    Javaのバイナリ検索ツリーから削除する

  27. 27

    特定のツリーエンコーディングでルートからリーフへのパスを取得する

  28. 28

    ツリーデータ構造を使用せずに、ノードとそのすべての子をバイナリツリーから削除します

  29. 29

    バイナリからMySQLをインストールする際の問題

ホットタグ

アーカイブ