题目描述
给定一个 N 叉树,返回其节点值的层序遍历。 (即从左到右,逐层遍历)。
例如,给定一个 3叉树 :

返回其层序遍历:
[
[1],
[3,2,4],
[5,6]
]
说明:
- 树的深度不会超过
1000。 - 树的节点总数不会超过
5000。
思路
解法
/**
* // Definition for a Node.
* function Node(val,children) {
* this.val = val;
* this.children = children;
* };
*/
/**
* @param {Node} root
* @return {number[][]}
*/
const levelOrder = root => {
const result = [];
if (!root) return result;
let queue = [root];
while (queue.length) {
result.push(queue.map(({ val }) => val));
const nextLevels = [];
queue.forEach(node => {
nextLevels.push(...node.children);
});
nextLevels.filter(node => node);
queue = nextLevels;
}
return result;
};