题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
Python解答
# -*- 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 not root:
return []
queue = [root] # 构建队列,首先将根结点压入队列
result = []
while queue: # 当队列不为空,执行循环
temp_root = queue.pop(0) # 弹出队列头元素,记录到结果中
result.append(temp_root.val)
if temp_root.left: # 若弹出队列的左右子节点不为空,则压入队列
queue.append(temp_root.left)
if temp_root.right:
queue.append(temp_root.right)
return result