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

HOT100——二叉树篇Leetcode236. 二叉树的最近公共祖先

文章目录

  • 题目:Leetcode236. 二叉树的最近公共祖先
  • 原题链接
  • 思路
  • 代码

题目:Leetcode236. 二叉树的最近公共祖先

给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

百度百科中最近公共祖先的定义为:“对于有根树 T 的两个节点 p、q,最近公共祖先表示为一个节点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大(一个节点也可以是它自己的祖先)。”

原题链接

二叉树的最近公共祖先

思路

  • 最近公共祖先两个节点都位于最近公共祖先的左右子树或者一个节点自己本身就是公共祖先
  • 首先本题一定是自下而上的找,理所当然的我们使用后续遍历

  • 如果 leftright 都不为空,说明 pq 分别位于当前节点的左右子树中,因此当前节点 root 就是它们的最低公共祖先
  • 如果只有 left 不为空,说明 pq 都在左子树中,返回 left
  • 如果只有 right 不为空,说明 pq 都在右子树中,返回 right

代码

在这里插入图片描述


http://www.mrgr.cn/news/94307.html

相关文章:

  • windows 下用docker 部署nginx
  • 项目组织管理类型-矩阵式组织和组合式组织的区别
  • RSA混合加密RSA混合加密
  • MySQL 8 设置允许远程连接(Windows环境)
  • 使用 Excel 实现绩效看板的自动化
  • 微信小程序:实现多功能表格效果,例如滚动效果、宽度自定义、多选、行内编辑等功能
  • 如何在Ubuntu上构建编译LLVM和ISPC,以及Ubuntu上ISPC的使用方法
  • 【不动产登记全解析】范围、内容与不予登记的情形
  • Android 11.0 监听某个app启动或者退出功能实现
  • 【Pandas】pandas Series last_valid_index
  • 什么是OF
  • 【20】单片机编程核心技巧:类型强制与中间变量解决运算溢出
  • java枚举解析
  • 2024年第十五届蓝桥杯软件C/C++大学A组——五子棋对弈
  • 大模型在原发性急性闭角型青光眼预测及治疗方案制定中的应用研究报告
  • 基于Python的selenium入门超详细教程(第1章)--WebDriver API篇
  • 电子元器件选型与实战应用—16 怎么选一个合适的MCU芯片?
  • 【算法】数据结构
  • 专题三x的平方根
  • python-leetcode-最大连续1的个数 III