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

【LeetCode 刷题】二叉树-公共祖先

此博客为《代码随想录》二叉树章节的学习笔记,主要内容为二叉树公共祖先问题相关的题目解析。

文章目录

  • 236. 二叉树的最近公共祖先
  • 235. 二叉搜索树的最近公共祖先

236. 二叉树的最近公共祖先

题目链接

class Solution:
    def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
        if not root or root == p or root == q:
            return root
        left = self.lowestCommonAncestor(root.left, p, q)
        right = self.lowestCommonAncestor(root.right, p, q)
        if not left:
            return right
        if not right:
            return left
        return root
  • 后序遍历,最开始的判断条件为:rootNonepq 时,都返回 root 本身

235. 二叉搜索树的最近公共祖先

题目链接

class Solution:
    def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode':
        if root.val < p.val and root.val < q.val:
            return self.lowestCommonAncestor(root.right, p, q)
        if root.val > p.val and root.val > q.val:
            return self.lowestCommonAncestor(root.left, p, q)
        return root
  • 不需要完整的后序遍历,而是根据 root 的值,可以知道正确的路径,因此只选择一个路径进行递归
  • 先判断 rootpq 都大和都小的情况,最后处理 root 在中间的情况,从而能够避免考虑 p.valq.val 哪个大

http://www.kler.cn/a/528830.html

相关文章:

  • 稀疏混合专家架构语言模型(MoE)
  • Spring Boot + Facade Pattern : 通过统一接口简化多模块业务
  • gentoo 中更改$PS1
  • c++ 定点 new 及其汇编解释
  • 在Ubuntu子系统中基于Nginx部署Typecho
  • 百度热力图数据获取,原理,处理及论文应用5
  • TensorFlow简单的线性回归任务
  • OpenAI推出o3-mini推理模型,首次免费开放,性能超越o1,AIME测试准确率高达87.3%
  • 牛客题目分享:JZ64 求1+2+3+...+n(用static成员和构造函数的方法)(C++)
  • 记6(人工神经网络
  • 数据结构:优先级队列—堆
  • C++ strcpy和strcat讲解
  • NeetCode刷题第19天(2025.1.31)
  • 二、CSS笔记
  • 掌握API和控制点(从Java到JNI接口)_35 JNI开发与NDK 03
  • Hot100之子串
  • [AI]安装open-webui时报部分安装失败
  • C++:虚函数与多态性习题
  • [ACTF2020 新生赛]Exec 1
  • 记忆力训练day11
  • FFmpeg工具使用基础
  • 844.比较含退格的字符串
  • 【大坑】使用element-ui弹窗$confirm自动弹出
  • OpenAI:人工智能领域的先锋力量
  • 【数据采集】案例02:基于Selenium采集豆瓣电影Top250的详细数据
  • Heptagon record 数据结构