二叉树层次遍历

/**
 * 
   * 二叉树按层遍历的思路:
   * 将root节点,放入队列中(先进先出),然后取出root节点,检查左节点是否为null,不为null,放入队列中,
    * 检查右节点是否为null,不为null,放入队列中,然后打印root节点的值,再从队列中取出下一节点,循环直到队列为空
 *
 */
public class BinTree {

    public static void main(String[] args) {
        
        Node  root = new Node("A");
        root.left = new Node("B");
        root.right = new Node("C");
        root.left.left = new Node("D");
        root.left.right = new Node("E");
        root.right.left = new Node("F");
        root.right.right = new Node("G");
    
        traversal(root);

    }
    
    public static void traversal(Node root) {
        System.out.println("二叉树层次遍历");
        LinkedList<Node> list = new LinkedList<Node>();
        list.add(root);
        while(!list.isEmpty()) {
            Node  temp =  list.pop();
            if(temp.left != null) {
                list.offer(temp.left);
            }
            if(temp.right != null) {
                list.offer(temp.right);
            }
             System.out.print(temp.value + " ");
         }
    }
    
    static class Node{
        String value;
        Node left;
        Node right;
        public Node(String value) {
            this.value = value;
        }
    }
    
}

 

posted @ 2019-07-19 16:02  踏月而来  阅读(956)  评论(0编辑  收藏  举报