题目描述
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
python实现:
# -*- 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 pRoot is None:
return []
from collections import deque
queue = deque([pRoot])
curLevelNum = 1
result = []
tmpResult = []
while queue:
front = queue.popleft()
tmpResult.append(front.val)
curLevelNum -= 1
if front.left:
queue.append(front.left)
if front.right:
queue.append(front.right)
if curLevelNum==0:
curLevelNum = len(queue)
#result.append(tmpResult)
result.append(tmpResult[:])
tmpResult = []
return result