题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
知识点:树,队列
解题思路
这题我们可以通过使用一个队列保存我们需要打印的节点,然后按照先进先出的原则提取队列中的节点。
具体思路是:每次打印一个节点时,如果该节点有子节点,则把该节点的子节点放在队列的末尾。接下来从队列的头部取出最早进入队列的节点,重复上面的过程,直至队列中所有节点都被打印出来。
Python 代码
class Solution:
# 返回从上到下每个节点值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# write code here
if root is None:
return []
queue = [root]
printarr = []
while queue:
root = queue.pop(0)
printarr.append(root.val)
if root.left :
queue.append(root.left)
if root.right:
queue.append(root.right)
return printarr