【题目】
给定一颗二叉树的头结点head,实现按层打印二叉树
【代码】
package zyc.binaryTree;import java.util.LinkedList;
import java.util.Queue;public class P132_printBT {public static void main(String[] args) {Node node = new Node(10);node.left = new Node(4);node.left.left = new Node(2);node.left.right = new Node(5);node.right = new Node(14);node.right.left = new Node(11);node.right.right = new Node(15);print(node);}public static void print(Node node) {Queue<Node> queue = new LinkedList();queue.add(node);Node last = node;Node nextLast = null;int level = 1;System.out.print("第" + level + "层:");while (!queue.isEmpty()) {Node curNode = queue.poll();System.out.print(curNode.value + " ");if (curNode.left != null) {queue.add(curNode.left);nextLast = curNode.left;}if (curNode.right != null) {queue.add(curNode.right);nextLast = curNode.right;}if (curNode == last && !queue.isEmpty()) {System.out.print("\n第" + (++level) + "层:");last = nextLast;}}}//二叉树分层打印public static class Node {public int value;public Node left;public Node right;public Node(int value) {this.value = value;}}
}