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

【Leetcode100】算法模板之二叉树

感谢博主的讲解

二叉树

  • 适用场景
  • 例题
    • 1.翻转二叉树
    • 2.最大深度
    • 3.中序遍历
    • 4. 公共祖先

适用场景

  1. 递归:
    (1)子问题与原问题的关系
    (2)结束递归条件

例题

1.翻转二叉树

在这里插入图片描述

首先分析(1),子问题是翻转每个小树,翻转后交换root结点【以及如何回溯】。----2 3
(2)终止条件为遇到NULL结点。-----1
抄袭:
在这里插入图片描述
因此本题步骤
1.子问题,翻转左右,right\left变量临时记录翻转后的树【递归】
2.将翻转结果赋值给root.left

最终子问题都处理完,返回root

# Definition for a binary tree node.
# class TreeNode(object):
#     def __init__(self, val=0, left=None, right=None):
#         self.val = val
#         self.left = left
#         self.right = right
class Solution(object):def invertTree(self, root):""":type root: Optional[TreeNode]:rtype: Optional[TreeNode]"""# 3.递归终止的条件if root is None:return root# 1.子问题翻转left = self.invertTree(root.left) # left保存翻转结果right =self.invertTree(root.right)# 2. exchangeroot.left = right # 替换root.right = leftreturn root

2.最大深度

3.中序遍历

4. 公共祖先

http://www.xdnf.cn/news/20395.html

相关文章:

  • 【机器学习】通过tensorflow搭建神经网络进行气温预测
  • Ubuntu系统下Python连接国产KingbaseES数据库实现增删改查
  • 计算机视觉(十二):人工智能、机器学习与深度学习
  • 03-Redis 安装指南:从版本选择到多系统部署(Windows+macOS+Linux)
  • 【机器学习】综合实训(一)
  • AI工具深度测评与选型指南 - 音视频生成与处理类
  • Kotlin 协程之 突破 Flow 限制:Channel 与 Flow 的结合之道
  • 如何终止画图
  • 海尔电视刷机
  • 【算法】92.反转链表Ⅱ--通俗讲解
  • More Effective C++ 条款32:在未来时态下发展程序
  • 带fat32文件系统的bin二进制文件制作教程
  • 【FastDDS】XTypes Extensions
  • 没有深度学习
  • 笔记:ubuntu安装matlab
  • 机械硬盘的工作原理
  • 接口权限验证有哪些方式
  • B.50.10.08-Nacos架构与电商应用
  • 容器镜像:运行容器的静态蓝图
  • 基于SpringBoot+JSP开发的潮鞋网络商城
  • ISO/IEC 27001 第八章 运行
  • MIMO-OFDM ISAC Waveform Design for Range-Doppler Sidelobe Suppression
  • 【C++ 双指针技巧】
  • 嵌入式学习笔记--Linux系统编程阶段--DAY06进程间通信-消息队列
  • Linux知识回顾总结----文件系统
  • 南科大适应、协同与规划的完美融合!P³:迈向多功能的具身智能体
  • 【基础-单选】下面哪一个事件方法可以获取到List滑动的偏移量
  • Flicking单图轮播无法拖动的问题
  • c++primer 个人学习总结-模板和泛型编程
  • 《QDebug 2025年8月》