二叉樹層次遍歷


/**
 * 
   * 二叉樹按層遍歷的思路:
   * 將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;
        }
    }
    
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM