题目描述

解题思路
- 使用队列来存储同一层的元素
- 使用数组1来存放同一层元素的所有值
- 使用数组2来存放用一层元素的所有指针
- 将数组1放进结果列表
- 将数组2所有元素的左右孩子放进队列,当队列的长度不为零的时候继续循环。
实现代码
var levelOrder = function (root) {
if (!root) return [];
let queue = [];
queue.push(root);
const res = [];
while (queue.length !== 0) {
const temp = [];
const temp2 = []
while (queue[0]) {
temp2.push(queue[0].val);
temp.push(queue.shift())
}
res.push(temp2);
while (temp[0]) {
if (temp[0].left !== null) queue.push(temp[0].left);
if (temp[0].right !== null) queue.push(temp[0].right);
temp.shift();
}
}
return res;
};