题目
描述
给定一个节点数为 n 二叉树,要求从上到下按层打印二叉树的 val 值,同一层结点从左至右输出,每一层输出一行,将输出的结果存放到一个二维数组中返回。
例如:
给定的二叉树是{1,2,3,#,#,4,5}
该二叉树多行打印层序遍历的结果是
[[1],[2,3],[4,5]]
数据范围:二叉树的节点数 0≤n≤1000,0≤val≤1000
要求:空间复杂度 O(n),时间复杂度 O(n)
思路
层次遍历
代码
python版本:
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
#
# @param pRoot TreeNode类
# @return int整型二维数组
#
class Solution:
def Print(self , pRoot: TreeNode) -> List[List[int]]:
# write code here
if pRoot==None:
return []
res = []
storage = [pRoot]
while(len(storage)):
num = len(storage)
pre_level = []
for i in range(num):
node = storage.pop(0)
pre_level.append(node.val)
if node.left != None:
storage.append(node.left)
if node.right != None:
storage.append(node.right)
res.append(pre_level)
return res
c++代码:
无