题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
实现思路:
借助队列。从根节点开始,依次将节点入队列,判断是否有孩子节点,然后将孩子节点入队列,同时将该节点出队列。
代码实现:
# -*- 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
out_list = []
queue = [root]
while queue and root:
out_list.append(queue[0].val)
if queue[0].left:
queue.append(queue[0].left)
if queue[0].right:
queue.append(queue[0].right)
queue.pop(0)
return out_list