102.二叉树的层序遍历
遍历本身很简单,需要考虑的问题是怎么标示每一层,这里可以用迭代和递归两种思路
迭代
- 入队 root ,再入队一个null 表示第 0 层的结束
- 出队 root ,入队左右节点 , 如果出队的是null,说明一层结束,再入队一个 null
- 队列不为空,循环 2
⚠️ 需要注意的点: 队列最后一项如果不做处理将会一直是null,因此需要增加结束条件
1 | var levelOrder = function(root) { |
递归
递归解法的重点是传递层数作为参数
1 | var levelOrder = function(root) { |
步骤如代码所示
- 为所在的层数开辟一个数组空间
- root 加入数组
- 如果存在左节点,或者右节点,继续到1,层数 + 1