题目描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
示例
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
#
# @param root TreeNode类
# @return int整型二维数组
#
class Solution:
def levelOrder(self , root ):
# write code here
res = [] # 用于返回最后结果
if not root:
return res # 如果根结点为空,返回结果
q = [root]
while q: # 队列不为空则循环
tmp = [] # 用于存储当前遍历这一层的结点
for i in range(len(q)):
node = q.pop(0) # 取出队列的第一个元素
tmp.append(node.val)
if node.left:
q.append(node.left) # 左子树不空,则左孩子入队
if node.right:
q.append(node.right) # 右子树不空,则右孩子入队
res.append(tmp)
return res