首页 > 其他分享 >107. 二叉树的层序遍历 II(中)

107. 二叉树的层序遍历 II(中)

时间:2023-12-22 17:01:03浏览次数:34  
标签:cur 队列 res 层序 列表 II 二叉树 节点 append

目录

题目

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

题解:BFS

  • 用BFS把每层的结点存在一个单独的列表里,最后翻转整个结果列表
class Solution:
    def levelOrderBottom(self, root: Optional[TreeNode]) -> List[List[int]]:
        if not root:# 如果根节点为空,直接返回空列表
            return []
        res=[]# 存储结果的列表
        q=[]# 使用列表作为队列
        q.append(root)# 将根节点加入队列
        step=1# 记录当前层的编号
        while q:#当队列不为空时
            size=len(q)
            res1=[] # 存储当前层的结果
            
            for _ in range(size):
                cur = q.pop(0)# 从队列头部取出节点
                res1.append(cur.val)# 将当前节点的值加入当前层的结果列表
                if cur.left:# 将左子节点加入队列
                    q.append(cur.left)
                if cur.right:# 将右子节点加入队列
                    q.append(cur.right)
            res.append(res1)   # 将当前层的结果列表加入最终结果列表
            step+=1   # 增加层编号
        res.reverse()   # 反转最终结果列表
        return res

标签:cur,队列,res,层序,列表,II,二叉树,节点,append
From: https://www.cnblogs.com/lushuang55/p/17921981.html

相关文章

  • 103. 二叉树的锯齿形层序遍历(中)
    目录题目题解:BFS题目给你二叉树的根节点root,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。题解:BFS用BFS把每一层的结点存在一个列表里面,然后判断一下如果是偶数层就翻转列表,最后都加入结果列表返回即可classSo......
  • 二叉树
    一.二叉树的概念1.二叉树的性质二叉树的每个节点最多有两个子节点,分别称为左孩子和右孩子,以他们为根的子树称为左子树和右子树。二叉树的第i层最多有2^(i-1)个节点。如果每层的节点数都是满的,称他为满二叉树。图例:如果这个二叉树只是在最后一层有缺失,且......
  • Fastjson2基础使用以及底层序列化/反序列化实现探究
    来自于:https://www.cnblogs.com/6b7b5fc3/p/17134421.html1Fastjson2简介Fastjson2是Fastjson的升级版,特征:协议支持:支持JSON/JSONB两种协议部分解析:可以使用JSONPath进行部分解析获取需要的值语言支持:Java/Kotlin场景支持:Android8+/服务端其他特性支持:GraalNative-Image......
  • quartus ii快速写入管脚分配方法
    1.创建.tcl文件set_location_assignmentPIN_92-toXD[4]set_location_assignmentPIN_47-toXD[3]set_location_assignmentPIN_48-toXD[2]set_location_assignmentPIN_70-toXD[1]根据自己的引脚分配修改<>中内容即可,set_location_assignment<PIN_XX>-to2.导入t......
  • 代码随想录算法训练营第八天 | 344.反转字符串,541.反转字符串II,卡码网:54.替换数字,151.
    一、344.反转字符串题目链接:LeetCode344.反转字符串学习前:思路:相向指针。left=0,right=length-1,不停交换left和right的值时间复杂度:O(n)空间复杂度:O(1)学习后:了解swap函数通过位运算实现的方式二、541.反转字符串II题目链接:LeetCode541.反转字符串II学习前:思路:ne......
  • Binary Tree Level Order Traversal II
    SourceGivenabinarytree,returnthebottom-uplevelordertraversalofitsnodes'values.(ie,fromlefttoright,levelbylevelfromleaftoroot).ExampleGivenbinarytree{3,9,20,#,#,15,7},3/\920/\157return......
  • Maix II Dock gpio子系统点亮LED学习
    一、Linux的gpio子系统1、Linux内核提供pinctrl子系统,目的为了统一各soc厂商的pin引脚管理;2、pinctrl子系统提供的功能①、管理系统中所有可控制的pin引脚:在系统初始化时候,枚举所有可控制的pin,并标识这些pin;②、管理这些pin的复用功能:配置若干引脚组......
  • 21_从中序与后序遍历序列构造二叉树
    106.从中序与后序遍历序列构造二叉树给定两个整数数组inorder和postorder,其中inorder是二叉树的中序遍历,postorder是同一棵树的后序遍历,请你构造并返回这颗二叉树。示例1:输入:inorder=[9,3,15,20,7],postorder=[9,15,7,20,3]输出:[3,9,20,null,null,15,7]......
  • [LeetCode] LeetCode81. 搜索旋转排序数组II
    题目描述思路:是lc33.搜索旋转排序数组的延伸,允许包含重复元素起初:当nums[left]<=nums[mid]时,区间[left,mid]有序当nums[left]>nums[mid]时,区间[mid,right]有序但是这个题目当nums[left]==nums[mid]时,无法判断哪个区间是有序的,无法判断target位于左侧还是右侧,此时无......
  • 相同二叉树和镜面二叉树问题
    相同二叉树和镜面二叉树问题作者:Grey原文地址:博客园:相同二叉树和镜面二叉树问题CSDN:相同二叉树和镜面二叉树问题判断两棵树是否是相同的树题目描述见:LeetCode100.SameTree即:如果两个树在结构上相同,并且节点具有相同的值,则认为它们是相同的。比如:两个树结构完全一致,对......