429. N 叉树的层序遍历(中)
题目
- 给定一个 N 叉树,返回其节点值的层序遍历。(即从左到右,逐层遍历)。
树的序列化输入是用层序遍历,每组子节点都由 null 值分隔(参见示例)。

python
题解:BFS
class Solution:
def levelOrder(self, root: 'Node') -> List[List[int]]:
if not root:
return []
res=[]# 存储最终的层次遍历结果
q=[] #用列表做队列
q.append(root)# 将根节点添加到队列中
while q:
size=len(q)
res1=[]# 存储当前层的节点值
for _ in range(size):
cur=q.pop(0)#取对头的结点
res1.append(cur.val)#加入当前层的列表里
if cur.children:# 将当前节点的子节点添加到队列中
q.extend(cur.children)
res.append(res1)#每一层的列表加到最终结果列表里
return res
javascript
题解:层序遍历
var levelOrder = function(root) {
if(root===null) return []
let res=[]
let queue=[root]
while(queue.length>0){
let cur_list =[]
let n =queue.length
for (let i=0;i<n;i++){
let cur_node = queue.shift()
cur_list.push(cur_node.val)
//遍历所有孩子,入队
for(const child of cur_node.children){
queue.push(child)
}
}
res.push(cur_list)
}
return res
};
浙公网安备 33010602011771号