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

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

例如,给定如下二叉树:  root = [3,5,1,6,2,0,8,null,null,7,4]

示例 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。因为根据定义最近公共祖先节点可以为节点本身。

说明:

所有节点的值都是唯一的。
p、q 为不同节点且均存在于给定的二叉树中。

思路:头一次遇到就是最近的。

/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode(int x) { val = x; }* }*/
class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {if(root==p || root==q || root==null){return root;}TreeNode left=lowestCommonAncestor(root.left,p,q);TreeNode right=lowestCommonAncestor(root.right,p,q);if(left==null)return right;if(right==null)return left;return root;}
}

leetcode236 二叉树的最近公共祖先相关推荐

  1. Leetcode--236. 二叉树的最近公共祖先(Java)

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

  2. 43-二叉树练习-LeetCode236二叉树的最近公共祖先

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

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

    给定一棵二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义: "对于有根树T的两个结点u.v,最近公共祖先表示一个结点x,满足x是u.v的祖先且x的深度尽可能大. ...

  4. 奇安信集团笔试题:二叉树的最近公共祖先(leetcode236),杀死进程(leetcode582)...

    1. 二叉树最近公共祖先 奇安信集团 2020校招 服务端开发-应用开发方向在线考试 编程题|20分2/2 寻祖问宗 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C+ ...

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

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

  6. 二叉树题目----6 二叉树的最近公共祖先 AND 二叉树搜索树转换成排序双向链表

    二叉树的最近公共祖先 思路 在左.右子树中分别查找是否包含p或q: 如果以下两种情况(左子树包含p,右子树包含q/左子树包含q,右子树包含p),那么此时的根节点就是最近公共祖先 如果左子树包含p和q, ...

  7. LeetCode 1676. 二叉树的最近公共祖先 IV

    文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树的根节点 root 和 TreeNode 类对象的数组(列表) nodes,返回 nodes 中所有节点的最近公共祖先(LCA). 数组(列 ...

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

    承接二叉搜索树的最近公共祖先. 题目链接: 二叉树的最近公共祖先 - 力扣(LeetCode)​leetcode-cn.com 题目描述: 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百 ...

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

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

最新文章

  1. CNS接连发文背书,原来生姜这么神奇
  2. 韶音耳机连不上电脑_骨传导耳机哪个牌子好,骨传导耳机推荐
  3. asp.net中将枚举绑定到下拉列表
  4. IoT 时代,安全危机爆发
  5. linux给wps安装字体
  6. 过采样:SMOTE算法
  7. 电大有计算机教程吗,中央电大 计算机平面设计(上)
  8. 最常见的社会工程攻击
  9. xml文件怎么转换成wps_Office 12使用XML格式存储文件 正式回击WPS
  10. Redhat8: SCTP: type= 5 errno= <0x5e> Socket type not supported
  11. python 爬取图片、没有后缀名_python爬虫,图片是无格式的
  12. 万豪旅享家推出“一日通”“入住通”和“游玩通”三项权益
  13. insert into select 语法使用
  14. 强制删除正在运行的文件
  15. 【苹果CMS技术教程】苹果CMSV10伪静态基础认识和设置教程
  16. 我用“电驴”抓肉鸡(转)
  17. 【周志华机器学习】绪论
  18. 网络编程socket之bind、Listen 及 accept
  19. 台式计算机能用蓝牙耳机吗,台式电脑可以连蓝牙耳机吗_台式电脑可以连蓝牙吗-win7之家...
  20. linux操作系统下载gLINUX数据恢复及RAID数据恢复解决方案(组图

热门文章

  1. java开发和structs的关系_java---springMVC与strutsMVC的区别
  2. sockaddr类型重定义
  3. Linux 定时器设置
  4. python数据分析师书籍_如何自学成为数据分析师
  5. NuGet的简单使用
  6. LINQ TO SQL和Entity Framework 的关系 你了解多少?
  7. 一些关于ROS中move_base的理解
  8. 安卓手机挂载Linux,android 挂载NFS教程
  9. CCNA-第十篇-VLAN-下
  10. 【CodeForces - 892C 】Pride (数学,思维构造,gcd)