429. N 叉树的层序遍历

给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。

树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

链接

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
/**
* Definition for node.
* class Node {
* val: number
* children: Node[]
* constructor(val?: number) {
* this.val = (val===undefined ? 0 : val)
* this.children = []
* }
* }
*/

function levelOrder(root: Node | null): number[][] {
const res: number[][] = []
if (root === null) return res
const nodeQues: Node[] = [root]
while(nodeQues.length > 0) {
const nodes = nodeQues.splice(0)
const len = nodes.length
const levelRes = []
for(let i = 0;i < len; i++) {
const node = nodes[i]
if (node) {
const { val, children } = node
levelRes.push(val)
const clen = children.length
for(let j = 0; j < clen; j++) {
const node = children[j]
node && nodeQues.push(node)
}
}
}
levelRes.length > 0 && res.push(levelRes)
}
return res
};