题目描述
- 从上往下打印出二叉树的每个节点,同层节点从左至右打印。
- 地址: 牛客链接
问题分析
- 很明显,这是层次遍历。
- 层次遍历要用一个队列来辅助实现,若根节点不为空,先将根入队。然后将队中第一个节点出队,并将该节点的左右孩子依次入队(如果左右孩子不为空)。重复上述操作,直至队列为空,完成层次遍历。
经验教训
- 层次遍历要用队列
- 在java中,队列可用LinkedList来模拟(底层是双向链表),注意不要用ArrayList,因为它的底层是数组。
代码实现
import java.util.ArrayList;
import java.util.LinkedList;
/**
public class TreeNode {
int val = 0;
TreeNode l