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;
    }
}
相关推荐
格林威1 天前
Baumer相机铆钉安装状态检测:判断铆接是否到位的 5 个核心算法,附 OpenCV+Halcon 的实战代码!
人工智能·opencv·算法·计算机视觉·视觉检测·工业相机·堡盟相机
星空露珠1 天前
速算24点检测生成核心lua
开发语言·数据库·算法·游戏·lua
happygrilclh1 天前
高压高频电源的pid算法
算法
格林威1 天前
Baumer相机铸件气孔与缩松识别:提升铸造良品率的 6 个核心算法,附 OpenCV+Halcon 实战代码!
人工智能·opencv·算法·安全·计算机视觉·堡盟相机·baumer相机
葫三生1 天前
存在之思:三生原理与现象学对话可能?
数据库·人工智能·神经网络·算法·区块链
Evand J1 天前
【MATLAB例程】无人机三维路径规划|A*,RRT(快速随机树算法), APF(人工势场法)算法对比|可自定义起终点、障碍物坐标。附下载链接
算法·matlab·无人机·astar·路径规划·rrt·apf
少许极端1 天前
算法奇妙屋(二十七)-全排列与子集问题
算法·剪枝·回溯·递归
sali-tec1 天前
C# 基于OpenCv的视觉工作流-章20-仿射变换
图像处理·人工智能·opencv·算法·计算机视觉
u0109272711 天前
实时数据流处理
开发语言·c++·算法
独自破碎E1 天前
【滑动窗口+计数】LCR015找到字符串中所有字母异位词
数据结构·算法