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

力扣日刷47-补

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

这一题的逻辑说句实话也是非常地难懂。下面我来做一个总结吧:

首先,我们的边界条件是,如果节点为空或者节点是pq其中一个返回节点的值。

然后我们进行后序的遍历。这个遍历相当于是去刨根问底一定要找到p或者q或者所有的节点。因为我们设置了返回条件,所以只有当确实到底了或者找到结点的时候才能返回,然后我们便是要去判断是不是公共祖先,当左边返回来有值,右边也返回来有值的时候这个节点就是我们要的最近祖先,如果左边有值,右边没值的话,返回左边的节点。如果右边有值,返回右边的节点。

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': if root is None or root is p or root is q: return root left = self.lowestCommonAncestor(root.left,p,q) right = self.lowestCommonAncestor(root.right,p,q) if left and right: return root if left: return left return right

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

这一道题是这样的,跟上一题差不多这一题,会更简单一点,这一题用到的是更加简易的判断。返回递归条件设置为了当两个值都在一侧的时候进入迭代,在哪一侧就进入哪一侧。然后直到p跟q的值在当前节点的两边。此时的节点就是我们需要的节点

# Definition for a binary tree node. # class TreeNode: # def __init__(self, x): # self.val = x # self.left = None # self.right = None class Solution: def lowestCommonAncestor(self, root: 'TreeNode', p: 'TreeNode', q: 'TreeNode') -> 'TreeNode': x = root.val if p.val <x and q.val<x: return self.lowestCommonAncestor(root.left,p,q) if p.val > x and q.val > x: return self.lowestCommonAncestor(root.right,p,q) return root
http://www.jsqmd.com/news/605142/

相关文章:

  • 生物信息学实战:如何用k-mer分析提升基因组测序质量(附Python代码示例)
  • 智能家居中枢:OpenClaw+千问3.5-35B-A3B-FP8实现多模态家庭控制面板
  • 5分钟搭建个人游戏串流服务器:Sunshine完整部署指南
  • 计算机视觉领域的顶刊顶会全解析:从投稿到发表
  • Vue 3 的父子组件传值主要遵循单向数据流的原则:父传子 和 子传父。
  • 白噪声的含义
  • PHP源码部署需要多大硬盘空间_PHP项目存储空间估算方法【方法】
  • 嵌入式裸机开发中的轻量级上下文切换方案
  • CMPS12磁力计寄存器级驱动与KRAI架构嵌入式实践
  • TVS二极管在汽车电子12V DC电源线中的瞬态浪涌防护方案解析
  • css专栏
  • 2025年大模型应用落地深度实践:Training Recipe、Omni与Agent技术栈
  • 021、卷积神经网络(CNN):架构解析与图像识别实战
  • Go语言高并发服务踩坑记:TCP短连接导致TIME_WAIT端口耗尽,我是如何用SO_REUSEADDR解决的
  • 梯度下降翻车实录:当6个数据点遇上非线性约束,我是如何用SLSQP逆袭的
  • 单片机IO口扩展方案全解析与应用实践
  • FlashRAG项目实战:如何用BGE和Qwen3-0.6B模型定制你的中文Streamlit问答界面
  • 自动化客户支持:OpenClaw+Qwen3-4B处理电商售后常见问题
  • TinyMenu:面向RP2040的极简嵌入式菜单库
  • MCP4922双通道DAC嵌入式驱动框架解析
  • 2026年屋顶光伏支架可靠供应商top5:锌铝镁光伏支架/光伏压块/光伏导电片线夹/光伏户用水槽/光伏支架型号/选择指南 - 优质品牌商家
  • 单片机开发:HEX与BIN文件格式深度解析
  • 如何处理SQL视图的循环依赖_优化架构设计与拆分逻辑
  • 2025-2026年国内GEO排名优化推荐:TOP7服务商评测对比顶尖
  • 2026台州模具货架怎么选:温州贯通货架/温州重型货架/温州阁楼平台货架/温州阁楼货架/台州agv智能货架/选择指南 - 优质品牌商家
  • 深度强化学习算法DDPG、TD3与SAC在MuJoCo机器人实验环境下的研究
  • OpenClaw教育应用:用Kimi-VL-A3B-Thinking自动批改图文作业
  • OpenClaw更新指南:Qwen3-32B镜像的版本迁移与兼容性处理
  • Linux线程创建机制与多线程编程实践
  • 嵌入式开发中的代码生成器设计与实践