【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. 公共祖先

相关推荐
少林码僧6 小时前
2.31 机器学习神器项目实战:如何在真实项目中应用XGBoost等算法
人工智能·python·算法·机器学习·ai·数据挖掘
钱彬 (Qian Bin)6 小时前
项目实践15—全球证件智能识别系统(切换为Qwen3-VL-8B-Instruct图文多模态大模型)
人工智能·算法·机器学习·多模态·全球证件识别
Niuguangshuo7 小时前
EM算法详解:解密“鸡生蛋“的机器学习困局
算法·机器学习·概率论
a3158238067 小时前
Android 大图显示策略优化显示(一)
android·算法·图片加载·大图片
一条大祥脚7 小时前
26.1.9 轮廓线dp 状压最短路 构造
数据结构·c++·算法
鲨莎分不晴7 小时前
反向传播的数学本质:链式法则与动态规划的完美共舞
算法·动态规划
sonadorje7 小时前
逻辑回归中的条件概率
算法·机器学习·逻辑回归
cici158748 小时前
基于Pan-Tompkins算法的ECG信号HRV提取方案
算法
McGrady-1758 小时前
拓扑导航 vs 几何导航的具体实现位置
算法
副露のmagic8 小时前
更弱智的算法学习 day24
python·学习·算法