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

力扣热题100之翻转二叉树

题目

给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。
在这里插入图片描述

代码

方法一:递归

# 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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return        cur=self.invertTree(root.left)root.left=self.invertTree(root.right)root.right=curreturn root 

方法二:栈迭代

# 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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return        stack=[root]while stack:node=stack.pop()if node:stack.append(node.left)stack.append(node.right)node.left,node.right=node.right,node.leftreturn root

方法三:队迭代

# 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 invertTree(self, root: Optional[TreeNode]) -> Optional[TreeNode]:if not root:return        queue=deque([root])while queue:for _ in range(len(queue)):node=queue.popleft()if node.left:queue.append(node.left)if node.right:queue.append(node.right)node.left,node.right=node.right,node.leftreturn root

这道题的方法和求二叉树的深度方法一致

http://www.dtcms.com/a/224827.html

相关文章:

  • 26考研——文件管理_文件目录(4)
  • 电机驱动器辐射骚扰整改
  • 关于用Cloudflare的Zero Trust实现绕过备案访问国内站点说明
  • HackMyVM-Ephemeral3
  • 考研系列—操作系统:第三章、内存管理(part.2)
  • AI书签管理工具开发全记录(八):Ai创建书签功能实现
  • MySQL事务与锁机制详解:确保数据一致性的关键【MySQL系列】
  • PostIn入门教程 - 使用IDEA插件快速生成API接口定义
  • Halcon
  • 力扣HOT100之动态规划:139. 单词拆分
  • 牛客周赛94
  • 极智项目 | 多模态大模型推理平台-Streamlit版(支持Qwen2.5/InternVL3/KimiVL三大模型)
  • 【CBAP50技术手册】#31 Observation(观察法):BA(业务分析师)的“现场侦探术”
  • 浮点数舍入规则_编程语言对比
  • CTFHub-RCE 命令注入-过滤运算符
  • [SC]SystemC在CPU/GPU验证中的应用(二)
  • R语言错误处理方法大全
  • CRISPR-Cas系统的小型化研究进展-文献精读137
  • python打卡day41
  • vue2源码解析——响应式原理
  • CentOS 7 安装docker缺少slirp4netnsy依赖解决方案
  • C51单片机
  • Python Day38 学习
  • Java BigInteger类详解与应用
  • 使用Yolov8 训练交通标志数据集:TT100K数据集划分
  • 【MLLM】多模态LLM 2025上半年技术发展(Better、Faster、Stronger)
  • 【C语言】讲解 程序分配的区域(新手)
  • 第12讲、Odoo 18 权限控制机制详解
  • 【plink 和vcftools使用】从 VCF 文件中提取指定 SNP 的 REF/ALT 方法
  • ICML 2025 Spotlight | 机器人界的「Sora」!让机器人实时进行未来预测和动作执行!