题目描述:

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

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

示例 1:
输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 1
输出:3
解释:节点 5 和节点 1 的最近公共祖先是节点 3 。

示例 2:
输入:root = [3,5,1,6,2,0,8,null,null,7,4], p = 5, q = 4
输出:5
解释:节点 5 和节点 4 的最近公共祖先是节点 5 。因为根据定义最近公共祖先节点可以为节点本身。

示例 3:

输入:root = [1,2], p = 1, q = 2
输出:1

思路分析;

具体思路分析可以看下以下的文章链接,讲得非常好:

https://mp.weixin.qq.com/s/9RKzBcr3I592spAsuMH45g

java实现:

class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==null){return null;}if(root==p || root==q){return root;}TreeNode left=lowestCommonAncestor(root.left,p,q);TreeNode right=lowestCommonAncestor(root.right,p,q);if(left!=null && right!=null){return root;}if(left==null && right==null){return null;}return left==null? right:left;}
}

LeetCode-236: 二叉树的最近公共祖先相关推荐

  1. 力扣(LeetCode)236. 二叉树的最近公共祖先(C语言)

    一.环境说明 本文是 LeetCode 236. 二叉树的最近公共祖先,使用c语言实现. 递归. 测试环境:Visual Studio 2019. 二.代码展示 精简代码: struct TreeNo ...

  2. leetcode 236. 二叉树的最近公共祖先 递归解法 c语言

    如题: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x, 满足 x 是 p.q ...

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

    文章目录 解法1:保存祖先节点+逐个判断 解法2:深度优先遍历 解法3:记录祖先节点 https://leetcode-cn.com/problems/lowest-common-ancestor-o ...

  4. 最近公共祖先_[LeetCode] 236. 二叉树的最近公共祖先

    题目链接: https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree 难度:中等 通过率:57.2% 题目描述: ...

  5. leetcode 236. 二叉树的最近公共祖先LCA(后序遍历,回溯)

    LCA(Least Common Ancestors),即最近公共祖先,是指在有根树中,找出某两个结点u和v最近的公共祖先. 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先.百度百科 ...

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

    Time: 20190907 Type: Medium 题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p. ...

  7. [leetcode]236.二叉树的最近公共祖先

    给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个节点 p.q,最近公共祖先表示为一个节点 x,满足 x 是 p.q 的祖先且 ...

  8. leetcode 236. 二叉树的最近公共祖先 思考分析

    目录 题目 思考分析 改进 本文章代码思路来源于公众号[代码随想录] 题目 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个 ...

  9. LeetCode 236. 二叉树的最近公共祖先(递归)

    题目描述 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q ...

  10. 【LeetCode】【HOT】236. 二叉树的最近公共祖先(递归)

    [LeetCode][HOT]236. 二叉树的最近公共祖先 文章目录 [LeetCode][HOT]236. 二叉树的最近公共祖先 package hot;class TreeNode{int va ...

最新文章

  1. SD--va01的屏幕增强
  2. WPF 命中测试HitTest
  3. 亚马逊全面发力AI,推机器学习托管服务、四项新工具,还有AI硬件
  4. Linux 下进入含空格的目录(以及文件夹名开头为`(`)
  5. Eclipse is running in a JRE, but a JDK is requi...
  6. Python操作DB2数据库
  7. 问道虚拟机服务器地址,问道1.60.0905虚拟机手工启动服务端+配套客户端+启动教程+充值注册软件+配套工具...
  8. 常见的80道面试算法题
  9. 码栈——让一切变得自动化
  10. python基础函数应用_python基础之函数的应用
  11. win10应用商店不见了
  12. 363、Java中级18 -【JDBC - 增、删、改】 2020.06.28
  13. [附源码]Python计算机毕业设计调查问卷及调查数据统计系统
  14. Unity3d+moba+草丛视野
  15. 大牛教你怎么学习Java多进程,下载量瞬秒百万
  16. .NET USEING 原理
  17. ### Cause: java.sql.SQLIntegrityConstraintViolationException: Column ‘user_id‘ cannot be null
  18. Linux curses库使用
  19. Oracle之TO_DATE用法详解
  20. 域服务器 文件服务器,域服务器文件服务器

热门文章

  1. Activity切换动画---点击哪里从哪放大
  2. zookeeper安装和使用
  3. windows下常用linux对应工具
  4. ECMAscript6(ES6)新特性语法总结(一)
  5. 2016/11/07 线程的创建和启动
  6. 自制反汇编逆向分析工具 迭代第六版本 (一)
  7. pdf转换成word教程
  8. 构建高性能.NET应用之配置高可用IIS服务器-第五篇 IIS常见问题之:工作进程回收机制(中)...
  9. 算法导论-线性时间排序习题解
  10. java http 返回值_java发送http请求,无需等待返回结果