题解 | #把二叉树打印成多行#
把二叉树打印成多行
https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288
# 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
res=[]
if pRoot==None:
return res
# 使用辅助队列来实现层次遍历,第一个元素为根节点
q = [pRoot]
# 这里非常巧妙实现层次遍历
while q:
row = []
# 这里len(q) 每次只会遍历本层次的
for i in range(len(q)):
cur = q.pop(0)
row.append(cur.val)
if cur.left:
q.append(cur.left)
if cur.right:
q.append(cur.right)
res.append(row)
return res
查看17道真题和解析
