从上往下打印出二叉树的每个节点,同层节点从左至右打印。
# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
# 返回从上到下每个节点值列表,例:[1,2,3]
#宽度优先算法
def PrintFromTopToBottom(self, root):
# write code here
#若根节点空则返回空
if root == None:
return []
#定义一个队列存储最后结果,定义一个队列存储各节点
res = []
fz = [root]
while(fz):
#辅助队列里首先存储了根节点,首先出队列并赋值给结果队列
t = fz.pop(0)
res.append(t.val)
#若左子树不空,则将左子树根节点存入辅助队列,右子树同理。
if t.left:
fz.append(t.left)
if t.right:
fz.append(t.right)
return res