层序遍历的方法,使用两个数组current,next表示当前层和下一层的节点,不断地更新current和next的内容,直到current为空。(借用别人的方法,记录)
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回二维列表[[1,2],[4,5]]
def Print(self, pRoot):
# write code here
if not pRoot:
return []
res = []
currentLayer = [pRoot]
nextLayer = []
# 类似传统的层序遍历,将某一个节点加入队列,每一次移出节点的时候,就将他的子节点加入队列,这里使用两个数组,目的是区别不同层
while currentLayer:
for node in currentLayer:
if node.left is not None:
nextLayer.append(node.left)
if node.right is not None:
nextLayer.append(node.right)
res.append([i.val for i in currentLayer])
# 更新
currentLayer, nextLayer = nextLayer, []
return res