LeetCode 44 二叉搜索树的最近公共祖先

2023-10-31

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

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

例如,给定如下二叉搜索树: root = [6,2,8,0,4,7,9,null,null,3,5]
在这里插入图片描述
示例 1:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 8
输出: 6 
解释: 节点 2 和节点 8 的最近公共祖先是 6

示例 2:

输入: root = [6,2,8,0,4,7,9,null,null,3,5], p = 2, q = 4
输出: 2
解释: 节点 2 和节点 4 的最近公共祖先是 2, 因为根据定义最近公共祖先节点可以为节点本身。

算法:

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

执行结果:
在这里插入图片描述
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LeetCode 44 二叉搜索树的最近公共祖先 的相关文章

随机推荐

  • C++对txt文件的写入读取操作

    文章目录 1 文件流知识 2 文件的写入 3 文件内容的输出 1 文件流知识 摘自c 中文网 ifstream是输入文件流 就是通过它定义的对象获取文件中的内容 ofstream是输出文件流 将内容写入文件 注意 要使用输入输出文件流要包含
  • 1 .SQL——DataGrip 中的DML三种添加数据方法

    insert into student xingx xi id name age grade xb woketime value 1 aa 10 99 男 2023 12 1 给指定字段添加数据 insert into student xi
  • 谷粒商城笔记+踩坑汇总篇

    导航 黑马Java笔记 踩坑汇总 JavaSE JavaWeb SSM SpringBoot 瑞吉外卖 SpringCloud 黑马旅游 谷粒商城 学成在线 设计模式 牛客面试题 目录 一 摘要 二 微服务架构图 三 文章汇总 一 摘要 部
  • 【待解决】报错:gpt模型训练的时候,有报错的torch.distributed.elastic.multiprocessing.errors.ChildFailedError:

    pytorch多GPU并行的问题 torch distributed elastic multiprocessing errors c CSDN博客
  • Goby漏洞更新

    Goby预置了最具攻击效果的漏洞引擎 覆盖Weblogic Tomcat等最严重漏洞 每天从互联网 如CVE 会产生大量的漏洞信息 我们筛选了会被用于真实攻击的漏洞进行每日更新 Goby也提供了可以自定义的漏洞检查框架 发动了互联网的大量安
  • QTreeView使用整理

    在Qt开发过程中 树控件QTreeView使用的非常频繁 各种批量展示和编辑信息的地方 都用得上该控件 在使用QTreeView过程中 用到各种常规 不常规的功能 并进行过各种改造 这里将这些知识和技巧作一个总结 一 Model View框
  • C++实现基于mfc的仓库管理系统(可连MySQL数据库)

    概述 本系统是一个基于mfc实现的可以连接数据库的仓库管理系统 其余管理系统也可根据此系统进行参考与修改进行实现 主要功能 本超市仓库管理系统 通过对数据库的查询 能够实现系统登录以及对商品与用户信息的增删改查操作 支持多用户多身份登录 其
  • 大学《数据库系统》课程设计报告

    二话不说 先怼源码 gitHub源码地址 题 目 教学管理系统 专 业 计算机科学与技术 作 者 马志成 完成时间 2019年1月3日 一 实验目的 数据库系统课程设计是为了配合数据库原理及应用开发而设置的 是计算机科学与技术 网络工程 信
  • Contest2574 - 高级语言程序实践--第6次作业--计信A2107-2113

    写在前面 乍一看挺难 仔细想想也就纸老虎罢了 不写题解 自己想吧 目录 问题 A 字符串去重排序 问题 B 两数之和 问题 C 完美立方数 问题 D 分解质因数 问题 E 子列表最大长度 问题 F 列表的合并与排序 问题 G 个人数据脱敏
  • 别再问我们用什么画图的了!问就是excalidraw

    每次发 https github com tal tech go zero 相关文章时 都会有读者问我们用什么画图的 这图什么工具画的呀 好看 这个手绘风格真好看 用啥工具画的呀 可不可以介绍下这个画图的工具 诸如此类的问题 所以我决定写篇
  • MYSQL 删除空记录 NULL

    数据库小问题 今天在处理数据库中的数据的时候 遇到空记录的问题 在百度上搜索之后 给出的答案有这样几种 1 Delete from student where name null 2 Delete from student where na
  • 不只是噪声,更是数学美 ---浅谈Perlin Noise

    首先说明为什么这篇博客叫这个题目 我刚刚开始学习Perlin Noise是从知乎上的一篇文章入门的 作者的题目是不只是噪声 我觉得很有韵味 就借鉴过来 这是链接 https zhuanlan zhihu com p 22337544 一 背
  • navicat与mysql

    MySQL数据库用于存放数据 客户端navicat是为了方便操作数据库而设计的一种图形化软件 转自知乎如何安装MySQL数据库和navicat客户端 知乎 1 数据库如何安装 MySQL Begin Your Download 官网安装 安
  • MySQL基本知识

    什么是事务 事务是一个独立的工作单元 里面的操作要不全部成功 要不全部失败 事务有什么特性 原子性 操作要不全部成功 要不全部失败 隔离性 多个并发事务之间相互隔离 互不干扰 或者说一个事务的操作对于另外一个事务是不可见的 持久性 事务一旦
  • 密集预测/Dense Prediction

    Pixelwise dense prediction is the task of predicting a label for each pixel in the image 来自于卷积神经网络在图像语义分割 semantic image
  • haproxy应用

    不用手动编译安装 haproxy 1 7 3 tar gz yum install y rpm build rpmbuild help rpmbuild tb haproxy 1 7 3 tar gz cd root rpmbuild RP
  • NLP专栏|图解 BERT 预训练模型!

    关注后 星标 Datawhale 每日干货 每月组队学习 不错过 Datawhale干货 作者 张贤 哈尔滨工程大学 Datawhale原创作者 本文约7000字 NLP专栏文章 建议收藏阅读 审稿人 Jepson Datawhale成员
  • linux内核模块编程(二)----timer定时器

    先给自己打个广告 本人的微信公众号正式上线了 搜索 张笑生的地盘 主要关注嵌入式软件开发 足球等等 希望大家多多关注 有问题可以直接留言给我 一定尽心尽力回答大家的问题 一 why 一般地 在我们嵌入式软件开发中 使用定时器的目的是为了实现
  • C#中实现FIR带通滤波

    最近有一个需求 在C 中实现FIR滤波 网上查了些资料感觉FIR滤波使用的还算比较多 相关的原理也比较简单 参考下面在Python环境中实现FIR的博客 在C 的环境中实现了一遍 https blog csdn net moge19 art
  • LeetCode 44 二叉搜索树的最近公共祖先

    题目 给定一个二叉搜索树 找到该树中两个指定节点的最近公共祖先 百度百科中最近公共祖先的定义为 对于有根树 T 的两个结点 p q 最近公共祖先表示为一个结点 x 满足 x 是 p q 的祖先且 x 的深度尽可能大 一个节点也可以是它自己的