层遍历二叉树

来源:互联网 发布:搜狐影音 mac版 编辑:程序博客网 时间:2024/05/22 14:50

层遍历二叉树

规则:

            如果这个节点有值,则打印“值!"
            如果这个节点没有值,则打印“#!”
           从上到下,从左到右

比如:                     

                                                                    1
                                          2                                                    3
                     4                               null                null                             5
   null                         null                                                       null                        null

代码:

package com.sangfor.tree;public class Node {public int value;public Node left;public Node right;public Node(int value) {this.value = value;}}
package com.sangfor.tree;import java.util.LinkedList;import java.util.Queue;public class LinePrintTree {    public static void main(String[] args) {Node node1 =new Node(1);Node node2 =new Node(2);Node node3 =new Node(3);Node node4 =new Node(4);Node node5 =new Node(5);node1.left = node2;node1.right = node3;node2.left = node4;node3.right = node5;String s = linePrientTree(node1);System.out.println(s);}        public static String linePrientTree(Node head) {    if (head == null) {    return "#!";    }    String s = "";    Queue<Node> queue = new LinkedList<Node>();    queue.offer(head);s += head.value+"!";    while (!queue.isEmpty()) {    head = queue.poll();    if (head.left != null) {    queue.offer(head.left);    s += head.left.value + "!";    } else {    s += "#!";    }    if (head.right != null) {    queue.offer(head.right);    s += head.right.value + "!";    } else {    s += "#!";    }    }    return s;    }}


结果:


1!2!3!4!#!#!5!#!#!#!#!
0 0
原创粉丝点击