- while 遍历每一层
- for 遍历一层的每个节点
利用队列先进先出的特性,每次输出一个节点后,它的子节点入队,也就是说,一个节点的入队时间
取决于他父节点的出队时间
public static void layerShow(TreeNode root){
if(root==null){
System.out.println("empty");
return;
}
Queue<TreeNode> queue = new LinkedList<>();
TreeNode node;
queue.add(root);
while(!queue.isEmpty()){
int len = queue.size();
for (int i = 0; i < len;i++) {
node = queue.poll();
if(node == null){
System.out.print("null ");
continue;
}
System.out.print(node+" ");
queue.add(node.left);
queue.add(node.right);
}
System.out.println();
}
}
这个遍历可读性很好
0
-10 5
null -3 null 9
null null null null