22. 从上往下打印二叉树
从上往下打印二叉树
http://www.nowcoder.com/questionTerminal/7fe2212963db4790b57431d9ed259701
22. 从上往下打印二叉树
题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
思路
二叉树的层次遍历。
使用队列,在逐层遍历的时候访问每一层从左往右的节点都放到一个队列中,先入先出,队列的初始节点是根节点。
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 []
result = []
queue = [root]
while(len(queue)):
node = queue.pop(0)
result.append(node.val)
if(node.left):
queue.append(node.left)
if(node.right):
queue.append(node.right)
return result 