实现思路
使用一个队列,将头节点放进去,遍历头节点的时候将头节点取出来,然后将头节点的左右节点放进去,以此循环
var levelOrder = function(root) {
if (!root) {
return [];
}
var res = [];//存放结果的数组
var queue = [];//队列
queue.push(root);//将头节点放入队列
while (queue.length) {
var arr = [];
//注意必须保存length 不然在循环中 如果有数据添加到队列中,那么队列的长度就会改变
var length = queue.length;
for (var i = 0; i < length; i++) {
var node = queue.shift();
arr.push(node.val);
if (node.left) queue.push(node.left);
if (node.right) queue.push(node.right);
}
res.push(arr);
}
return res;
}