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

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

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

题解:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

代码如下:

java 复制代码
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root == q || root == p || root == null){
            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){
            return right;
        }
        return left;

    }
}
相关推荐
Frostnova丶14 分钟前
LeetCode 3296. 使山区高度为零的最少秒数
算法·leetcode
样例过了就是过了37 分钟前
LeetCode热题100 全排列
数据结构·c++·算法·leetcode·dfs
程序员夏末44 分钟前
【LeetCode | 第六篇】算法笔记
笔记·算法·leetcode
滴滴答滴答答2 小时前
机考刷题之 23&24&25 LeetCode 55&213&123
算法·leetcode·职场和发展
无限进步_2 小时前
【C++】只出现一次的数字 III:位运算的巧妙应用
数据结构·c++·git·算法·leetcode·github·visual studio
一叶落4383 小时前
LeetCode 74 | 搜索二维矩阵(C语言版题解)
c语言·数据结构·c++·算法·leetcode·矩阵·动态规划
iAkuya3 小时前
(leetcode)力扣100 96.只出现一次的数字(位运算)
算法·leetcode·职场和发展
Tisfy3 小时前
LeetCode 1622.奇妙序列:懒更新
数学·算法·leetcode·题解·设计
Trouvaille ~3 小时前
【贪心算法】专题(五):逆向思维与区间重叠的极致拉扯
c++·算法·leetcode·青少年编程·面试·贪心算法·蓝桥杯
nananaij3 小时前
【LeetCode-03 判断根结点是否等于子结点之和 python解法】
python·算法·leetcode