【Leetcode100】算法模板之二叉树

感谢博主的讲解

二叉树

适用场景

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

例题

1.翻转二叉树

首先分析(1),子问题是翻转每个小树,翻转后交换root结点【以及如何回溯】。----2 3

(2)终止条件为遇到NULL结点。-----1

抄袭:

因此本题步骤

1.子问题,翻转左右,right\left变量临时记录翻转后的树【递归】

2.将翻转结果赋值给root.left

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

c 复制代码
# 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. exchange
        root.left = right # 替换
        root.right = left

        return root

2.最大深度

3.中序遍历

4. 公共祖先

相关推荐
qq_410194295 小时前
.NET 8.0 下基于 PaddleOCRSharp 的离线文字识别落地指南
算法·.net
Omics Pro5 小时前
1个月2轮融资!长寿虚拟细胞
数据库·人工智能·算法·机器学习·自然语言处理
residual_fan5 小时前
航空发动机故障诊断专用智能体(六):实际机队健康管理中的应用考量与展望
人工智能·算法·数据挖掘·数据分析
hansang_IR5 小时前
【讲解】CSP-S2026 第一轮初赛
c++·算法
hanlin035 小时前
刷题笔记:力扣第76题-最小覆盖子串
笔记·算法·leetcode
Zane19945 小时前
比较排序跑不出O(nlogn)是数学上证明过的,计数、桶、基数排序凭什么能绕开这堵墙
算法·排序算法
tiger8655 小时前
大语言模型面试和题解,梳理中国主流开源 LLM 系列的发展脉络、技术路线与工程取舍
人工智能·gpt·深度学习·算法·自然语言处理·面试·transformer
我不会起名字3226 小时前
一天一道力扣Hot100(36):深度优先算法---组合总和
数据结构·c++·后端·python·算法·go
虚无的纽扣6 小时前
【力扣刷题】第三天:有效三角形的个数、快乐数
算法·排序算法
tiger8656 小时前
大语言模型面试和题解,Context Engineering 怎么做?长 Prompt、动态上下文与 Memory 管理
人工智能·深度学习·算法·语言模型·自然语言处理·面试·nlp