当前位置: 首页 > 后端技术 > Python

LeetCode - 0429. N 叉树的层序遍历【Python】

时间:2023-03-26 00:29:37 Python

力扣|0429.Nary-Tree输入序列化表示在它们的层次顺序遍历中,每组孩子都用空值分隔(见示例)。示例1:输入:root=[1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]例2:输入:root=[1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]约束:n叉树的高度小于等于1000,节点总数在[0,104]题目给定一棵N叉树,返回其节点值层序遍历。(即从左到右,逐层遍历)。树的序列化输入按级别顺序遍历,每组子节点由空值分隔(参见示例)。示例1:输入:root=[1,null,3,2,4,null,5,6]输出:[[1],[3,2,4],[5,6]]示例2:输入:root=[1,null,2,3,4,5,null,null,6,7,null,8,null,9,10,null,null,11,null,12,null,13,null,null,14]输出:[[1],[2,3,4,5],[6,7,8,9,10],[11,12,13],[14]]提示:高度树不是树的节点总数会超过1000。树的节点总数在[0,10^4]之间。思考BFS二叉树层次遍历使用BFS时,每次将左右子树加入队列,N叉树每次将所有子树加入队列。.Python3代码"""#Node.class节点的定义:def__init__(self,val=None,children=None):self.val=valself.children=children"""class解决方案:deflevelOrder(self,root:'Node')->List[List[int]]:importcollectionsres=[]ifnotroot:returnresq=collections.deque()q.append(root)#BFSwhileq:tmp=[]for_inrange(len(q)):node=q.popleft()tmp.append(node.val)#使用extend在列表末尾一次追加多个值q.extend(node.children)res.append(tmp)返回resGitHublinkPython