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

面试150 二叉树的锯齿层次遍历

在这里插入图片描述

思路

通过层序遍历,队列去实现。只需要加多一个变量去控制是否要逆转即可。

from collections import deque
from typing import Optional, List# 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 = rightclass Solution:def zigzagLevelOrder(self, root: Optional[TreeNode]) -> List[List[int]]:res = []if not root:return resque = deque([root])left_to_right = True  # 控制层序遍历方向while que:level = []for _ in range(len(que)):node = que.popleft()level.append(node.val)if node.left:que.append(node.left)if node.right:que.append(node.right)# 根据当前方向决定是否反转if not left_to_right:level.reverse()res.append(level)left_to_right = not left_to_right  # 切换方向return res
http://www.dtcms.com/a/282375.html

相关文章:

  • YOLO13正式发布!考虑将yolov13的创新点融合到半监督中,构建YOLOv13_ssod
  • Qt 将触摸事件转换为鼠标事件(Qt4和Qt5及以上版本)
  • Qt 的信号槽机制中,使用 `connect` 函数时,第五个参数是 **连接类型(Connection Type)**,
  • Ubuntu中man手册不全解决以及man手册中英文切换方法
  • 若依框架下前后端分离项目交互流程详解
  • 20、鸿蒙Harmony Next开发:组件导航(Navigation)和页面路由(@ohos.router)
  • 现代人工智能综合分类:大模型时代的架构、模态与生态系统
  • Node.js ORM框架Sequelize 一对一(One-to-One)、一对多(One-to-Many)和多对多(Many-to-Many)
  • NDVI、噪声和细微差别:使用卫星时间序列进行土地覆盖分类
  • K近邻算法的分类与回归应用场景
  • LVS集群调度器
  • 2022年CIE SCI2区TOP,NSGA-II+直升机-无人机搜救任务分配,深度解析+性能实测
  • MongoDB查询的精准匹配和$in的查询区别
  • fastadmin会员单点登录
  • Python进程与协程:高效编程的核心秘密
  • Apache SeaTunnel详解与部署(最新版本2.3.11)
  • 拉普拉斯方程边界问题求解
  • 跟着Nature正刊学作图:回归曲线+散点图
  • 912. 排序数组
  • orfeotoolbox Pansharpening-全色锐化
  • TDengine 中 InterP 函数用户手册
  • 医疗AI“全栈原生态“系统设计路径分析
  • 多人协作游戏中,团队共同获取的装备如何确定按份共有或共同共有
  • 二代身份证识别技术的发展:从机器学习到深度学习
  • 【机器学习】数据理解:数据导入、数据审查与数据可视化
  • Qt小组件 - 7 SQL Thread Qt访问数据库ORM
  • gin go-kratos go-zero框架对比
  • 【后端】配置SqlSugar ORM框架并添加仓储
  • 【论文阅读 | IF 2025 | COMO:用于多模态目标检测的跨 Mamba 交互与偏移引导融合】
  • Web3.0与元宇宙:重构数字文明的技术范式与社会变革