层序遍历递归Python版本
把二叉树打印成多行
https://www.nowcoder.com/practice/445c44d982d04483b04a54f298796288?tpId=13&&tqId=11213&rp=1&ru=/ta/coding-interviews&qru=/ta/coding-interviews/question-ranking
层序遍历递归Python版本
简单思路描写
class Solution:
# 返回二维列表[[1,2],[4,5]]
def Print(self, pRoot):
# write code here
#边界条件判定
if not pRoot :return []
#准备两个数组
#queue用来存储当前层的节点
#temp存储下一层的节点
queue = []
temp = []
#准备一个数组用来做容器装每层结果
result = []
queue.append(pRoot)
#准备计数器做层数计数
count = 0
#遍历所有节点即只要queue为空,就意味着遍历完了整棵树
while queue:
res = []
#每次需要清空下一层节点容器,以便容纳下下层节点
temp = []
for node in queue:
res.append(node.val)
if node.left:temp.append(node.left)
if node.right:temp.append(node.right)
#当当前层统计完毕,需要开始下一层节点数据时,将temp覆盖queue
queue = temp
count += 1
result.append(res)
return result
查看6道真题和解析