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

力扣-面试题32-I.从上到下打印一棵二叉树【剑指Offer】[Python]

时间:2023-03-26 00:52:38 Python

LeetCode面试题32-I.从上到下打印一棵二叉树【剑指Offer】【中】【Python】【二叉树】【BFS】问题是从上到下打印出二叉树的每个节点,同一层的节点从左到右依次打印。例如:给定一棵二叉树:[3,9,20,null,null,15,7],3/\920/\157返回:[3,9,20,15,7]提示:总数ofnodes<=1000ideasBFS当队列不为空时:队首元素出队,记录为node在res末尾添加node.val如果左(右)子节点不为空,则添加left(右)队列的子节点时间复杂度:O(n),其中n是二叉树中的节点数。空间复杂度:O(n),其中n是二叉树中的节点数。Python3代码#定义一个二叉树节点。#classTreeNode:#def__init__(self,x):#self.val=x#self.left=None#self.right=Noneclass解决方案:deflevelOrder(self,root:TreeNode)->List[int]:importcollectionsifnotroot:return[]res,q=[],collections.deque()q.append(root)而q:node=q.popleft()#O(1)res.append(node.val)ifnode.left:q.append(node.left)ifnode.right:q.append(node.right)returnresGitHub链接Python