就算上一个打印之字形二叉树的变形,牢牢掌握下面这种写法
cur是null,说明后面的值是一层。
cur是null的下一层,说明已经记录过了,仅仅剩下填充队列的作用。
void fun(TreeNode head) {
Queue<TreeNode> queue = new LinkedList<>();
queue.offer(null);
queue.offer(head);
while (!queue.isEmpty()) {
TreeNode cur = queue.poll();
if (cur == null) {
TreeNode tmp = null;
Iterator<TreeNode> it = queue.iterator();
while (it.hasNext()) {
tmp = it.next();
}
// tmp是最右
if(tmp != null){
System.out.println(tmp.val);
queue.offer(null);
}
continue;
}
if (cur.left != null) {
queue.offer(cur.left);
}
if (cur.right != null) {
queue.offer(cur.right);
}
}
System.out.println("finish");
}