已解答
中等
相关标签
相关企业
给你二叉树的根节点 root
,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)
Definition for a binary tree node.
class TreeNode(object):
def init(self, val=0, left=None, right=None):
self.val = val
self.left = left
self.right = right
class Solution(object):
def levelOrder(self, root):
"""
:type root: Optional[TreeNode]
:rtype: List[List[int]]
"""
广度优先搜索
if root ==None:
return []
queue = []
final=[]
queue.append(root)
while queue!=[]:
left = len(queue)
final.append(queue[0])
queue_next=[]
for i in range(left):
if queue[i].left:
queue_next.append(queue[i].left)
if queue[i].right:
queue_next.append(queue[i].right)
final.append([x.val for x in queue])
queue = queue_next
queue_next=[]
return final
直接使用广度优先搜索去做,但是需要注意的是,我们需要额外去维护一个每一个层的lsit