如何从上到下打印python二叉树
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,如何从上到下打印python二叉树,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。题目描述请实现一个函数按照之字形顺序打印二叉树,即第一行
千家信息网最后更新 2025年12月02日如何从上到下打印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安全错误
数据库的锁怎样保障安全
网络安全报怎么画又简单
旅游社一般用的服务器是什么
服务器如何挂载光驱
青少年网络安全平台
支持mesh检索 数据库
怎么用服务器访问ip
数据库六步
库尔勒存储服务器维保
管家婆关闭数据库备份
软件开发公司服务认证
徐汇区软件开发培训
大神下载软件开发
现在最常用的软件开发语言
两台服务器同时挂一块空间
怀旧服pvp和服务器有什么区别
sdp软件开发计划书
高淳区智能化软件开发售后服务
辽宁网络技术基础
回收服务器机房网络设备
mfc数据库操作很慢
计算机网络技术与实现论文
电子商务平台erp系统软件开发
8t服务器专用固态硬盘
中软深圳软件开发
计算机网络技术基础阚宝朋ppt
多措并举维护网络安全
传奇私服服务器是什么样的
数据库核心技术有哪些
苹果的邮箱发件服务器
税务干部网络安全保密承诺书