次の印刷バイナリツリー(ジャワ)まで:安全プランを証明します

タイトル:各ノードのバイナリツリーの最上部からの印刷、左から右に同じ1ノードプリント注文。

例えば、入力されたバイナリツリーの場合:

      8
    / \
   6 10
  / \ / \
 5 7 9 11

ファーストプリントアウト8,6,10,5,7,9

  次のように処理を印刷することである:ルートを出力し、ノード8の次の2つのつの子ノードを印刷するために、我々は、一つの容器にノード6と二つのノード10のときに記憶された値を通過する必要があり今、コンテナ内の2つのノードがあります。必要に応じて、左から右に印刷された、我々は6の第1のノードの値を削除します。容器内に二つのデータノードのそれぞれ5,7、後の値うち6枚の印刷、。この場合、3件のデータがあり、それぞれの容器、10,5,7ノード。次に、我々は、コンテナのデータ値からノード10を除去します。ノード10に注目すると、これら二つのノードを削除するよりも、オフこの時間は、これは我々が一般的にFIFOを言う5,7の比の値、コンテナへの最初のノードであるが、そのコンテナを見ることは難しいことではありませんそれはキューでなければなりません。ノードの値は、子ノード5,7,9,11を有していないので、限り印刷として順次ことができます。

 public <E> void   printFromTopToBottom(BinaryTreeNode root){  
        if(root == null)  
            return;  
        Queue<BinaryTreeNode> queue = new LinkedList<BinaryTreeNode>();  
        queue.add(root);  
        while(!queue.isEmpty()){  
            BinaryTreeNode node = queue.poll();  
            System.out.print(node.value+",");  
            if(node.leftNode != null)  
                queue.add(node.leftNode);  
            if(node.rightNode != null)  
                queue.add(node.rightNode);  
        }  
    }  



公開された118元の記事 ウォン称賛35 ビュー120 000 +

おすすめ

転載: blog.csdn.net/abc7845129630/article/details/52729131
おすすめ