题解 | #按之字形顺序打印二叉树#

按之字形顺序打印二叉树

http://www.nowcoder.com/practice/91b69814117f4e8097390d107d2efbe0

class Solution:
def Print(self, pRoot):
# 方案:使用队列进行广度优先遍历:
queue=[]
rs=[]
if pRoot==None:return rs
#使用队列queue进行广度优先遍历
queue.append([pRoot,0])
while len(queue)>0:
#出队,并取出结点和对应的层数;
nodes=queue.pop(0)
node=nodes[0]
level=nodes[1]
#如果当前结点为该层第一个结点,那么就在结果集rs尾部添加一行,
#并直接把该节点加在结果集最后一行,如果不是该层第一个结点,那么
#就看是否是偶数层,如果是就顺序添加到结果集rs最后一行,若不是偶数层,
#那么就添加到结果集rs最后一行的首部;
if level>=len(rs):
rs.append([node.val])
elif level%2==0:
rs[level].append(node.val)
else:
rs[level].insert(0,node.val)
#如果当前结点的两个孩子结点不为空,就把孩子结点连同对应的层数一同入队;
if node.left:
queue.append([node.left,level+1])
if node.right:
queue.append([node.right,level+1])
return rs

全部评论

相关推荐

程序员花海_:实习和校招简历正确格式应该是教育背景+实习+项目经历+个人评价 其中项目经历注意要体现业务 实习经历里面的业务更是要自圆其说 简历模板尽可能保持干净整洁 不要太花哨的
点赞 评论 收藏
分享
11-10 21:00
门头沟学院 Java
程序员牛肉:没啥必要了,3月末就开暑期实习了,你现在找还不一定能找到。看你啥学历了。 双非基本代表想进好公司无望了。211的话,现在继续沉淀,零日常实习参加暑期其实也压力不太大
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务