# -*- coding:utf-8 -*-
# class TreeNode:
# def __init__(self, x):
# self.val = x
# self.left = None
# self.right = None
class Solution:
def PrintFromTopToBottom(self, root):
# write code here
if root==None:
return []
q=[root]
res=[]
while q!=[]:
tmp=q.pop(0)
res.append(tmp.val)
if tmp.left:
q.append(tmp.left)
if tmp.right:
q.append(tmp.right)
return res
让树能每一层从左到右打印,需要用队列来实现,想象树的结构是
1
2 3
初始先将root入队,然后开始判断队列是否为空,每一次先弹出队首元素(对于python用list实现,调用pop(0)),访问弹出节点并将2,3入队。之后访问2的时候如果2下面还有子节点,这时队首还是3,不会先访问孩子节点。