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

102. 二叉树的层序遍历

题目: 145. 二叉树的层序遍历

Python

1. 层序遍历模板

from collections import deque  def levelOrderTraverse(root):  if root is None:  return  q = deque()  q.append(root)  # 记录当前遍历到的层数(根节点视为第一层)  depth = 1  while q:  # 需要知道“这一层什么时候结束”,所以用 sz 锁定当前层的节点个数,实现分层控制。  sz = len(q)  for i in range(sz):  cur = q.popleft()  # 访问 cur 节点,同时知道它所在的层数  print(f"depth = {depth}, val = {cur.val}")  # 把 cur 的左右子节点加入队列  if cur.left is not None:  q.append(cur.left)  if cur.right is not None:  q.append(cur.right)  depth += 1

但问题是,这道题有输出的要求。真就是变一点点就不会做了。

2. 正确答案

照着题解 https://leetcode.cn/problems/binary-tree-level-order-traversal/solutions/2361604/102-er-cha-shu-de-ceng-xu-bian-li-yan-du-dyf7/ 抄的。

# 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 root is None:return []res, queue = [], collections.deque()queue.append(root)while queue:tmp = []for _ in range(len(queue)):node = queue.popleft()tmp.append(node.val)if node.left is not None:queue.append(node.left)if node.right is not None:queue.append(node.right)res.append(tmp)return res
复杂度分析
  • 时间复杂度 \(O(N)\)\(N\) 为二叉树的节点数量,即 BFS 需循环 \(N\) 次。
  • 空间复杂度 \(O(N)\): 最差情况下,即当树为平衡二叉树时,最多有 \(N/2\) 个树节点同时在 queue 中,使用 \(O(N)\) 大小的额外空间。
http://www.rkmt.cn/news/1306292.html

相关文章:

  • 南京及周边防水施工服务合规选型白皮书 - 奔跑123
  • 佛山实力雄厚的小程序开发公司 核心筛选维度全解析 - 奔跑123
  • 南充广告公司优选榜单:2026年本地标识牌,公示栏,精神堡垒现货供应链实力厂商 - 四川华蔓广告有限公司
  • 2026年5月广州正规的家教辅导/高中家教机构推荐广州市师大家教服务有限公司 - 品牌鉴赏师
  • 2026年5月口碑好的水处理/废水处理厂家推荐江苏环球环境工程集团有限公司 - 品牌鉴赏师
  • 南充广告设计制作安装厂家优选:2026年灯光舞台,演艺主持,泡沫板一站式制作服务商盘点 - 四川华蔓广告有限公司
  • 南京及镇江防水补漏服务商评测:全维度对比解析 - 奔跑123
  • 南充广告公司优选榜单:2026年本地门头招牌,发光字,软膜灯箱现货供应链实力厂商 - 四川华蔓广告有限公司
  • 【2026上海GEO优化怎么挑?合适的才是最好的】上海GEO优化公司选型参考:得赢科技核心能力详解 - 得赢
  • 南充广告设计制作安装厂家优选:2026年条幅锦旗,楼顶发光字,户外广告牌一站式制作服务商盘点 - 四川华蔓广告有限公司
  • 企业微信群活码开发-唯一客服企微xscrm源码开发
  • 虚幻游戏设计8个方向
  • 在合肥哪个招聘网站最有效?我是一个刚注册的新公司 - drfdxr
  • 南充广告设计制作安装厂家优选:2026年喷绘写真,平板UV喷印,亚克力字一站式制作服务商盘点 - 四川华蔓广告有限公司
  • 2026年庭院铸铝门厂家推荐:从梯队到避坑,一篇读懂如何选 - Amonic
  • Auto-Memory + CLAUDE.md
  • Ubuntu 服务器如何配置自动安全更新而不导致业务服务中断?
  • 贵州房地产销售行业如何做线上全网获客?2026年推广策略与服务商盘点 - 精选优质企业推荐官
  • 金华铸铝门厂家哪家好?2026年品牌梯队与避坑指南 - Amonic
  • 2026年靠谱的高温线缆厂家/推荐工业高温线缆加工厂/值得推荐的高温线缆厂 - 品牌推广大师
  • 贵阳工商代理记账公司如何做线上全网获客?2026年AI搜索推广与GEO优化指南 - 精选优质企业推荐官
  • 全国驾校2026年获客困局与线上突围指南,服务商推荐 - 精选优质企业推荐官
  • ERC-7730:解析签名意图,消除盲签风险
  • 贵阳驾校如何做线上推广?2026年学员获客全网布局指南 - 精选优质企业推荐官
  • 驾校如何做线上推广获客?2026全网获客指南与服务商盘点 - 精选优质企业推荐官
  • 2026年南充PVC板雕刻,KT板,车贴厂家推荐:本地定制哪家强? - 四川华蔓广告有限公司
  • Building a personal image hosting service and enabling access via a custom domain name
  • C语言malloc函数详细解说与工程实现(附带malloc、realloc、calloc、free完整源码)
  • 二手车收售评估如何做线上推广?2026全网获客指南与服务商选择 - 精选优质企业推荐官
  • 2026年南充喷绘写真,平板UV喷印,亚克力字厂家推荐:本地定制哪家强? - 四川华蔓广告有限公司