千家信息网

怎样实现从上到下打印python二叉树

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这期内容当中小编将会给大家带来有关怎样实现从上到下打印python二叉树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。题目描述从上到下打印出二叉树的每个节点,同一层
千家信息网最后更新 2026年11月03日怎样实现从上到下打印python二叉树

这期内容当中小编将会给大家带来有关怎样实现从上到下打印python二叉树,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

题目描述

从上到下打印出二叉树的每个节点,同一层的节点按照从左到右的顺序打印。

  • 节点总数 <= 1000

题目样例

示例

输入

给定二叉树: [3,9,20,null,null,15,7],

    3
/ \
9 20
/ \
15 7
输出

[3,9,20,15,7]

题目思考

  1. 哪些数据结构可以做到按层输出?

解决方案

思路

  • 经典的 BFS 思路, 将当前节点的左右非空子节点追加到队列结尾, 然后继续往后遍历队列, 最终整个队列就是最后的结果
  • 由于这里是树, 所以每个节点只可能被加入队列访问一次, 无需额外的 visit 集合
  • 另外这道题不需要分开保存每一层的节点, 所以这里不需要记录当前层的长度之类的情况, 可以直接一次循环搞定
  • 数据结构方面, 可以采用列表 + 动态的 for 循环(python 3 适用, 其他语言可能不支持遍历过程中更改容器)或者双端队列 + while 循环(所有语言通用, 每次 pop 最左边的元素作为当前节点)
  • 下面的代码是个人觉得比较通用的 BFS 模板, 包括列表和双端队列两种方式的实现, 适用于不需要单独处理每一层节点的情况, 供大家参考

复杂度

  • 时间复杂度 O(N)
    • 每个节点只需要遍历一次
  • 空间复杂度 O(N)
    • 额外需要一个列表/双端队列

代码

方案 1 - 列表 + for 循环
class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
# 方案1: 列表+for循环
if not root:
return []
q = [root]
for node in q:
# 只将非空子节点追加到队列
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
return [x.val for x in q]
方案 2 - 双端队列 + while 循环
import collections

class Solution:
def levelOrder(self, root: TreeNode) -> List[int]:
# 方案2: 双端队列+while循环
if not root:
return []
q = collections.deque([root])
res = []
while q:
node = q.popleft()
res.append(node.val)
if node.left:
q.append(node.left)
if node.right:
q.append(node.right)
return res

上述就是小编为大家分享的怎样实现从上到下打印python二叉树了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

节点 队列 循环 方案 复杂 复杂度 题目 代码 内容 就是 思路 情况 数据 数据结构 空子 结构 语言 分析 输出 专业 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技深圳 互联网品科技 朗新科技与工业互联网 云电互联网科技 互联网女皇 腾讯科技 唐信互联网科技 大连 科技伦理 互联网公司 汽车互联网创新科技园 知域互联网科技有限公司大骗子 洛阳昕诺飞互联网科技有限公司 广西互联网科技孵化中心 江苏苏星互联网科技有限公司 雨阳互联网卡科技有限公司 工业互联网科技成果转化 广州梦谷互联网科技有限公司领导 萌小萌互联网科技河南有限公司 广西科技产业互联网是什么 长沙易易互联网科技有限公司 平安好医生打造互联网科技医疗 网互联网络科技 上海挚品互联网科技有限公司 互联网新科技 互联网科技与金融科技 有马互联网科技 互联网科技项目计划书材料类 语蝶互联网科技有限公司 美国互联网科技实力 银行科技岗属于互联网吗 萌小萌互联网科技河南有限公司 互联网企业和网络科技有限公司
0