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