已解答
中等
相关标签
相关企业
给你二叉树的根节点 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: OptionalTreeNode
:rtype: ListList\[int]
"""
广度优先搜索
if root ==None:
return \[\]
queue = \[\]
final=\[\]
queue.append(root)
while queue!=\[\]:
left = len(queue)
final.append(queue0)
queue_next=\[\]
for i in range(left):
if queuei.left:
queue_next.append(queuei.left)
if queuei.right:
queue_next.append(queuei.right)
final.append(x.val for x in queue)
queue = queue_next
queue_next=\[\]
return final
直接使用广度优先搜索去做,但是需要注意的是,我们需要额外去维护一个每一个层的lsit