二叉树的层序遍历_System


 

public class Application {

static class Node {
int val;
Node left;
Node right;

public Node(int val) {
this.val = val;
}
}


public static void levelOrderTraversal (Node node) {
Queue<Node> queue = new LinkedList<>();
// 添加一个元素
queue.offer(node);
while (!queue.isEmpty()) {
// 移除并返回队列头部元素, 为空返回null
node = queue.poll();
System.out.print(node.val + " ");

if (node.left != null) {
// 添加左节点元素
queue.offer(node.left);
}

if (node.right != null) {
// 添加右节点元素
queue.offer(node.right);
}
}
}

public static void main(String[] args) {
Node root = new Node(1);

Node l1 = new Node(2);
Node r1 = new Node(3);
root.left = l1;
root.right = r1;

l1.left = new Node(4);
l1.right = new Node(5);

r1.left = new Node(6);
r1.right = new Node(7);

levelOrderTraversal(root);
}
}