描述
给定一个二叉树,返回该二叉树层序遍历的结果,(从左到右,一层一层地遍历)
例如:
给定的二叉树是{3,9,20,#,#,15,7},
该二叉树层序遍历的结果是
[
[3],
[9,20],
[15,7]
]
示例1
输入:
{1,2}
复制
返回值:
[[1],[2]]
示例2
输入:
{1,2,3,4,#,#,5}
复制
返回值:
[[1],[2,3],[4,5]]
# 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 ):
res=[] #返回最后的结果
qune=[] #队列解决
if not root:
return res #如果根节点为空就返回结果
qune.append(root) #队列保存每一层所有结点
while len(qune) != 0:
n = len(qune)
temp = [] #用于存储当前遍历这一层的节点
#遍历每一层
for i in range(n):
node = qune.pop(0) #取出队列的第一个元素
temp.append(node.val) #将队头元素保存起来
#左右节点按顺序加到队尾
if node.left:
qune.append(node.left) #左孩子如果不为空就进队列
if node.right:
qune.append(node.right) #右孩子如果不为空就进队列
res.append(temp) #将这一层的节点数里面据保存到res
return res