二叉树的层次遍历
public class T02LevelOrder {
public static class Node {
public int value;
public Node left;
public Node right;
public Node(int data) {
this.value = data;
}
}
public static void levelOrder(Node head) {
if (head != null) {
Queue<Node> queue = new LinkedList<>();
queue.add(head);
Node res = null;
while (!queue.isEmpty()) {
res = queue.poll();
System.out.print(res.value + " ");
if (res.left != null) {
queue.add(res.left);
}
if (res.right != null) {
queue.add(res.right);
}
}
}
}
public static void main(String[] args) {
Node head = new Node(5);
head.left = new Node(3);
head.right = new Node(8);
head.left.left = new Node(2);
head.left.right = new Node(4);
head.left.left.left = new Node(1);
head.right.left = new Node(7);
head.right.left.left = new Node(6);
head.right.right = new Node(10);
head.right.right.left = new Node(9);
head.right.right.right = new Node(11);
System.out.print("level-order: ");
levelOrder(head);
}
}