python解二叉树的层序遍历
程序员文章站
2022-07-15 16:08:55
...
Q
A
class Solution(object):
def levelOrder(self, root):
"""
:type root: TreeNode
:rtype: List[List[int]]
"""
queue = collections.deque() #创建一个队列
queue.append(root) #向队列填充第一个元素
res = [] #储存返回值
while queue: #循环遍历队列,队列每次存放的都是同一层级的节点,遍历
size = len(queue)
level = [] #储存同级节点内容
for _ in range(size): #根据同级节点数量遍历指定节点
cur = queue.popleft()
if not cur:
continue
level.append(cur.val)
queue.append(cur.left)
queue.append(cur.right)
if level:
res.append(level)
return res
思路