思路
可以借助队列先进先出的特点,
①每次取对头节点的值放入结果中
②按照先序遍历每次先将根节点存入,再依次存入其左孩子右孩子(如果有的话)
以上两点在while循环中实现,直至队列长度为0
实现
# -*- 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 is None:
return []
queue=[]
result=[]
queue.append(root)
while len(queue)>0:
currentRoot=queue.pop(0)
result.append(currentRoot.val)
if currentRoot.left:
queue.append(currentRoot.left)
if currentRoot.right:
queue.append(currentRoot.right)
return result