Python二叉树的层次遍历怎么实现
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇文章主要介绍"Python二叉树的层次遍历怎么实现",在日常操作中,相信很多人在Python二叉树的层次遍历怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"P
千家信息网最后更新 2026年11月03日Python二叉树的层次遍历怎么实现
这篇文章主要介绍"Python二叉树的层次遍历怎么实现",在日常操作中,相信很多人在Python二叉树的层次遍历怎么实现问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Python二叉树的层次遍历怎么实现"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
题目
给定一个二叉树,返回其节点值自底向上的层次遍历。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)
例如:
给定二叉树 [3,9,20,null,null,15,7],
3 / \ 9 20 / \ 15 7
返回其自底向上的层次遍历为:
[ [15,7], [9,20], [3]]
解题思路
思路:广度优先搜索(BFS)
先看题目,题目要求返回节点值自底向上的层次遍历。(从叶子节点所在层往根节点所在层,逐层从左到右遍历)。
那么我们可以发现,使用广度优先搜索的方法是最直观的,题目要求自底向上,这里我从上到下遍历搜索时先用栈存储,然后再实现逆序(即自底向上)。具体的做法如下:
从根节点开始搜索;
每次搜索的时候先确定当前层的节点数量,遍历当前层的全部节点,用列表存储当前层的节点值;
用栈存储上述存储每层节点值的列表,后续实现逆序。
具体代码实现如下:
# Definition for a binary tree node.# class TreeNode:# def __init__(self, x):# self.val = x# self.left = None# self.right = Nonefrom collections import dequeclass Solution: def levelOrderBottom(self, root: TreeNode) -> List[List[int]]: if not root: return [] ans = [] stack = [] queue = deque() queue.append(root) while queue: cnt = len(queue) tmp = [] for _ in range(cnt): node = queue.popleft() if node.left: queue.append(node.left) if node.right: queue.append(node.right) tmp.append(node.val) stack.append(tmp) while stack: ans.append(stack.pop()) return ans
到此,关于"Python二叉树的层次遍历怎么实现"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
节点
层次
搜索
所在
题目
存储
学习
叶子
广度
思路
方法
更多
逆序
帮助
实用
直观
接下来
代码
做法
数量
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
伟宏互联网科技
河南云网互联网络科技有限公司
互联网和科技创新
互联网科技金融公司
为想互联网科技
广州善班互联网科技
郑州华宇互联网科技
互联网科技网站
左右互联网络科技
互联网 科技服务平台
衡水科技产业互联网平台
互联网在线教育科技创业
云南省自由互联网科技有限公司
产业互联网科技服务公司
互联网相关科技技术
互联网与数字科技关系
互联网科技新闻
盐城市攀科互联网科技有限公司
互联网领先科技成果宣传视频
科技美学互联网 艺术
金融科技 互联网金融
科技服务与互联网
互联网科技公司电话
善班互联网科技
亿账通互联网科技
北京禾田雨橡互联网科技
中化能源互联网科技招聘
科技互联网大厂
互联网安防科技感
互联网科技博主张洲