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