107.二叉树的层序遍历II- 力扣(LeetCode)

题目:

给你二叉树的根节点 root ,返回其节点值 自底向上的层序遍历 。 (即按从叶子节点所在层到根节点所在的层,逐层从左向右遍历)

示例 1:

输入:root = 3,9,20,null,null,15,7

输出:\[15,7,9,20,3]

示例 2:

输入:root = 1

输出:\[1]

示例 3:

输入:root = \[\]

输出:\[\]

提示:

  • 树中节点数目在范围 0, 2000 内

  • -1000 <= Node.val <= 1000

思路如下:

102题基础上结果倒转。

题解如下:
python 复制代码
#两个数组
class Solution:
    def levelOrder(self, root):
        """
                  :type:  root: Optional[TreeNode]
                  :rtype: List[List[int]]
        """
        if root is None:
            return []
        ans = []
        cur = [root]
        while cur:
            nxt = []       # 存储下一层的节点
            vals = []      # 存储当前层的节点值
            for node in cur:
                vals.append(node.val)   # 收集当前层节点的值
                if node.left: nxt.append(node.left)   # 左子节点加入下一层
                if node.right:nxt.append(node.right)  # 右子节点加入下一层
            cur = nxt        # 更新当前层为下一层
            ans.append(vals) # 将当前层结果加入最终列表
        return ans[::-1]
#一个队列
class Solution:
    def levelOrder(self, root):
        """
                  :type:  root: Optional[TreeNode]
                  :rtype: List[List[int]]
        """
        if root is None:
            return []
        ans = []
        q = deque([root])
        while q:
        	vals = []
        	for _ in range(len(q)):  # 固定当前层的节点数量
            	node = q.popleft()   # 弹出队列最左侧节点(先进先出)
            	vals.append(node.val)
            	if node.left: q.append(node.left)   # 左子节点加入队列
            	if node.right:q.append(node.right)  # 右子节点加入队列
        	ans.append(vals)
        return ans[::-1]

倒转代码:return ans::-1

相关推荐
梦帮科技几秒前
脑机接口(BCI)与神经系统安全:EEG 神经电信号欺骗注入、神经闭环解码算法与生物黑客反制
算法·安全
老徐聊GEO1 分钟前
把“安徽“写进题面之后:多平台AI推荐名单的区域扰动测量(2026)
前端·人工智能·算法·geo优化
人工智能培训2 分钟前
具身智能:让人工智能拥有物理世界感知能力
大数据·人工智能·学习·算法·机器学习
果壳science3 分钟前
张祥前最新研究成果登上SCI期刊!
笔记·嵌入式硬件·算法·硬件工程·几何学
Rabitebla4 分钟前
【Linux 底层原理】工具篇(一):掌握 Ubuntu apt,让软件安装与管理更简单
linux·笔记·算法·ubuntu
ratel️9 分钟前
小墨析 · Office Agent 日常办公不烧心
python·langchain·word·excel·fastapi·js·ppt
碧海银沙音频科技研究院32 分钟前
基于炬芯ATS308X的DNN全连接神经网络手写数字识别系统设计
人工智能·深度学习·算法
文丑颜不良啊39 分钟前
LeetCode601~625题目解析
java·leetcode
MrGet39 分钟前
一步一步学Python(三):文件读写
python
stolentime1 小时前
SOS DP学习笔记
c++·笔记·学习·算法·贪心算法·动态规划·二进制