题目描述:从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。
从上到下打印二叉树 I
题目链接
分析:
主要利用的是队列先进先出的特点,首先将根节点放入到队列中,然后每次的取出队首(front)的节点,对队首节点进行取值、判断是否有字节点的操作
具体步骤
- 判断所给的二叉树是否为空
- 若为空,则直接返回空数组
- 若不为空,则首先初始化一个存放节点的队列(其实是数组)和一个存放结果的数组,另外将根节点放入到队列中
- 当对列不为空时,反复执行以下操作
- 从队列中取出队首节点,并将其值放入结果数组中
- 判断队首节点是否有左右子节点,如果有则将其放入到队列中
代码实现
var levelOrder = function (root) {
if (!root) {
return [];
}
let queue = [root],
result = [];
while(queue.length !== 0) {
let front = queue.shift();
result.push(front.val);
if (front