如何从上到下打印python二叉树
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,如何从上到下打印python二叉树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述请实现一个函数按照之字形顺序打印二叉树,即第一行
千家信息网最后更新 2026年11月01日如何从上到下打印python二叉树
如何从上到下打印python二叉树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
题目描述
请实现一个函数按照之字形顺序打印二叉树,即第一行按照从左到右的顺序打印,第二层按照从右到左的顺序打印,第三行再按照从左到右的顺序打印,其他行以此类推。
节点总数 <= 1000
题目样例
示例
输入
给定二叉树: [3,9,20,null,null,15,7],
3
/ \
9 20
/ \
15 7
输出
[
[3],
[20,9],
[15,7]
]
题目思考
可以继续利用昨天的方案吗, 不行的话需要进行哪些改动?
解决方案
思路
回顾昨天那道题 剑指 Offer 32 - II. 从上到下打印二叉树 II - leetcode 剑指offer系列, 我们是单独打印每一层的节点, 只不过都是从左到右的方向针对这道题, 我们可以额外维护一个变量, 记录当前方向, 每次到下一层时就调换方向即可 也就是说, 只需要对昨天题目的代码稍加改动就能搞定, 所以熟练掌握前面两种 BFS 的模板是很有必要的, 很多问题都能在它们基础上解决
复杂度
时间复杂度 O(N)每个节点只需要遍历一次 空间复杂度 O(N)额外需要一个队列
代码
class Solution:
def levelOrder(self, root: TreeNode) -> List[List[int]]:
res = []
if not root:
return res
q = [root]
# 初始从左到右遍历
fromleft = True
while q:
curlen = len(q)
cur = []
for node in q[:curlen]:
cur.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
if fromleft:
res.append(cur)
else:
# 从右向左的话只需要将该层的值翻转加入结果中即可
res.append(cur[::-1])
# 每一层结束后都调转方向
fromleft = not fromleft
q = q[curlen:]
return res
看完上述内容,你们掌握如何从上到下打印python二叉树的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!
方向
顺序
题目
复杂
复杂度
节点
问题
代码
内容
方案
方法
更多
不行
熟练
必要
束手无策
为此
以此类推
一行
也就是
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网金融科技
腾讯阿里互联网科技
广州互联网科技公司
北京禾田雨橡互联网科技
米客互联网科技
广西互联网科技公司
互联网科技网站
现代科技和互联网有关系吗
互联网教育科技公司vipkid
央行互联网金融科技公司
移动互联网年度科技创新
玉溪新华互联网科技好不好
明优互联网科技有限公司
伊宁互联网科技做什么的
广州百诚互联网科技有限公司官网
互联网金融运营模式中的金融科技
同城互联网络科技
马化腾互联网科技教学
安徽零酒互联网科技有限公司
青岛易易互联网科技
广州万易互联网科技有限公司
互联网科技产业
互联网公司 科技公司
礼当家互联网科技
上海致骋互联网科技
汉立互联网科技有限公司联系电话
互联网还是高科技吗
四川互联网展示科技馆设计
互联网硬科技公司
西安左小互联网科技有限公司