题目描述:
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
解题思路:
维持一个队列,首先让根节点入队,然后对于,每一个节点,当其左右儿子入队时,该节点出队,进入打印列表。
# 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 not root:
return []
nodelist = [root]
printlist = []
while len(nodelist) != 0:
tmp = nodelist.pop(0)
printlist.append(tmp.val)
if tmp.left:
nodelist.append(tmp.left)
if tmp.right:
nodelist.append(tmp.right)
return printlist