题目内容
从上到下按层打印二叉树,同一层结点从左至右输出。每一层输出一行。
题目思路
既然是层次遍历,我们采用队列的方法,在队列中取出一个节点,然后把它的数值放入结果中,同时如果包含左右节点,那么就左右节点放入节点队列中,直到没有任何可选择的节点为止。在这里不用考虑空节点的数值情况。
程序代码
# -*- 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=[]
queue=[pRoot]
while queue:
val_lst=[]
for i in range(len(queue)):
tmp=queue.pop(0)
if tmp.left:
queue.append(tmp.left)
if tmp.right:
queue.append(tmp.right)
val_lst.append(tmp.val)
res.append(val_lst)
return res