429. N 叉树的层序遍历(中)

发布时间 2023-12-22 20:35:31作者: Frommoon

题目

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

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

题解: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