当前位置: 首页 > news >正文

LeetCode-102. 二叉树的层序遍历【树 广度优先搜索 二叉树】

LeetCode-102. 二叉树的层序遍历【树 广度优先搜索 二叉树】

  • 题目描述:
  • 解题思路一:一个全局队列queue,while queue:去搜集当前所有queue的level
  • 解题思路二:背诵版
  • 解题思路三:

题目描述:

给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。

示例 1:
在这里插入图片描述
输入:root = [3,9,20,null,null,15,7]
输出:[[3],[9,20],[15,7]]

示例 2:

输入:root = [1]
输出:[[1]]

示例 3:

输入:root = []
输出:[]

提示:

树中节点数目在范围 [0, 2000] 内
-1000 <= Node.val <= 1000

解题思路一:一个全局队列queue,while queue:去搜集当前所有queue的level

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []queue = collections.deque([root])result = []while queue:level = []for _ in range(len(queue)):cur = queue.popleft()level.append(cur.val)if cur.left:queue.append(cur.left)if cur.right:queue.append(cur.right)result.append(level)return result

时间复杂度:O(n)
空间复杂度:O(n)

解题思路二:背诵版

# Definition for a binary tree node.
# class TreeNode:
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution:def levelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:if not root:return []queue = collections.deque([root])ans = []while queue:level = []for _ in range(len(queue)):cur =  queue.popleft()if cur.left:queue.append(cur.left)if cur.right:queue.append(cur.right)level.append(cur.val)ans.append(level)return ans

时间复杂度:O(n)
空间复杂度:O(n)

解题思路三:


时间复杂度:O(n)
空间复杂度:O(n)


创作不易,观众老爷们请留步… 动起可爱的小手,点个赞再走呗 (๑◕ܫ←๑)
欢迎大家关注笔者,你的关注是我持续更博的最大动力


原创文章,转载告知,盗版必究



在这里插入图片描述


在这里插入图片描述
♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠ ⊕ ♠

http://www.lryc.cn/news/351306.html

相关文章:

  • 基于时频模糊算子的数据增强方法
  • 浅谈后端整合Springboot框架后操作基础配置
  • 英码科技算能系列边缘计算盒子再添新成员!搭载TPU处理器BM1688CV186AH,功耗更低、接口更丰富
  • selenium 爬取今日头条
  • docker 安装 yapi
  • 【AI如何帮你编写测试用例并输出表格格式】
  • 九宫格转圈圈抽奖活动,有加速,减速效果
  • 利用阿里OSS服务给文件设置过期删除--简单版
  • LabVIEW控制Trio控制器
  • 02--大数据Hadoop集群实战
  • 【ARMv8/v9 异常模型入门及渐进 10 -- WFI 与 WFE 使用详细介绍 1】
  • @DateTimeFormat 和 @JsonFormat 的区别和使用方式
  • C++—结构体
  • 指针与引用
  • 使用 mysql-binlog-connector 监听处理 MySQLBinlog 文件
  • CF Div2 729 Plus and Multiply
  • Joomla 3.7.0 (CVE-2017-8917) SQL注入漏洞环境
  • Python高克勒-曼宁-斯特里克勒公式计算一维流量
  • 【GD32系列--基本定时器Timer + 定时1ms 灯光间隔1s闪烁例程】
  • 第11章 集合与迭代器
  • 探索Linux中的神奇工具:探秘tail命令的妙用
  • 1688商品API接口:电商数据自动化的新引擎
  • 路由器不能端口映射什么原因?如何设置内网映射?
  • 开源RAG,本地mac启动 dify源码服务
  • 【Linux取经路】基于信号量和环形队列的生产消费者模型
  • 计算机SCI期刊,中科院2区,收稿范围非常广泛!
  • JDK、JRE、编译指令和垃圾回收机制详解
  • 【ARM 嵌入式 C 入门及渐进 6.2 -- ARMv8 C 内嵌汇编读系统寄存器的函数实现】
  • 使用 LlamaParse 进行 PDF 解析并创建知识图谱
  • Oracle行迁移解析