题目描述
从上往下打印出二叉树的每个节点,同层节点从左至右打印。
以 下为例:
8
/ \
6 10
/ \ / \
5 7 9 11
从上到下打印节点: 8 6 10 5 7 9 11
打印8节点 存储6 10节点
打印6节点 存储10 5 7 节点
打印10节点 存储5 7 9 11 节点
打印5 节点 存储7 9 11节点
打印 7节点 存储9 11 节点
打印9节点 存储11节点
打印11节点 over
参考大神(行走的小百科)提交的代码:
来源:https://www.nowcoder.com/profile/3578330/codeBookDetail?submissionId=10213911
class Solution:
# 返回从上到下每个节点值列表,例:[1,2,3]
def PrintFromTopToBottom(self, root):
# write code here
if not root :
return []
res = []
stack = [root] # stack= [8] 添加第一个节点
while len(stack):
t = stack.pop(0) #返回第一个元素
res.append(t.val)
if t.left:
stack.append(t.left)
if t.right:
stack.append(t.right)
return res
python 列表的pop
pop() 函数用于移除列表中的一个元素(默认最后一个元素),并且返回该元素的值。
list.pop(index=-1)
参数
obj – 可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值。
返回值
该方法返回从列表中移除的元素对象。
#!/usr/bin/python3
#coding=utf-8
list1 = ['Google', 'Runoob', 'Taobao']
list_pop=list1.pop(1)
print "删除的项为 :", list_pop # Runoob
print "列表现在为 : ", list1 # ['Google', 'Taobao']