'''
解题思路:
1、BFS广度优先搜索,先获得每一层需要输出节点的个数,再一个个减小到0,这一层输出结束后,再输出下一层
2、queue.insert(0, cur.left),新增节点插入到0位
'''
# 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 ):
# write code here
if not root:
return None
queue = [root]
res = []
def bfs(root):
while queue:
n = len(queue)
level = []
while n>0:
cur = queue.pop()
level.append(cur.val)
if cur.left:
queue.insert(0, cur.left)
if cur.right:
queue.insert(0, cur.right)
n -= 1
res.append(level)
return res
return bfs(root)