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;

    }
}
相关推荐
自学小白菜2 小时前
每周刷题 - 第三周 - 双指针专题 - 02
python·算法·leetcode
不能只会打代码3 小时前
力扣--3433. 统计用户被提及情况
java·算法·leetcode·力扣
如竟没有火炬4 小时前
四数相加贰——哈希表
数据结构·python·算法·leetcode·散列表
埃伊蟹黄面5 小时前
模拟算法思想
c++·算法·leetcode
菜鸟233号8 小时前
力扣654 最大二叉树 java实现
java·算法·leetcode
鹿角片ljp9 小时前
力扣144.二叉树前序遍历-递归和迭代
算法·leetcode·职场和发展
好易学·数据结构9 小时前
可视化图解算法73:跳台阶(爬楼梯)
数据结构·算法·leetcode·动态规划·笔试
Tisfy9 小时前
LeetCode 3433.统计用户被提及情况:(大)模拟
linux·算法·leetcode
长安er10 小时前
LeetCode 98. 验证二叉搜索树 解题总结
java·数据结构·算法·leetcode·二叉树·力扣