LeetCode hot100-49-N

java 复制代码
236. 二叉树的最近公共祖先
给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。

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

有一种淡淡的死感,二叉树递归反正是越刷越绝望,完完全全的门外汉背题。

官方答案也看不懂,而且写得一般。

在看到一个好的解答,图画得很好,大概理解每一步是怎么返回了

https://zhuanlan.zhihu.com/p/269251274

但是他是写的C/C++版本,我根据这个思路改成Java。大概是这样的

java 复制代码
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if (root == null || root == p || root == q) {
            return root;
        }
        root.left = lowestCommonAncestor(root.left, p, q);
        root.right = lowestCommonAncestor(root.right, p, q);
        if (root.left != null && root.right != null) {
            return root;
        }
        return root.left == null ? root.right : root.left;
    }
}
相关推荐
不会就选b4 小时前
算法日常・每日刷题--<贪心>25
数据结构·算法
西部驯兽师6 小时前
制造企业的信息化选型课题(一)
职场和发展
Cccp.1238 小时前
【leetcode】(七)前缀树和贪心算法
数据结构·leetcode·贪心算法
天真小巫8 小时前
2026.9.28总结
职场和发展
千里码aicood8 小时前
基于CART算法的图书分类系统设计与实现
数据库·算法·分类
我命由我123458 小时前
经纪人的职业定义
经验分享·笔记·学习·职场和发展·求职招聘·职场发展·学习方法
做cv的小昊8 小时前
【World Model】π0.5:a Vision-Language-Action Model with Open-World Generalization
人工智能·算法·机器学习·大模型·多模态·vla·世界模型
لا معنى له9 小时前
World-In-World: World Models in a Closed-Loop World
算法
hqyjzsb10 小时前
法律 Prompt 干货:搭建合同审查提示词要包含哪些要素
开发语言·人工智能·python·职场和发展·数据分析·prompt·业界资讯