LeetCode算法二叉树—LCR 194. 二叉树的最近公共祖先

news2024/11/26 17:45:43

目录

LCR 194. 二叉树的最近公共祖先 - 力扣(LeetCode)

代码:

运行结果: 


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

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

例如,给定如下二叉树:  root = [3,5,1,6,2,0,8,null,null,7,4]

示例 1:

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

示例 2:

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

说明:

  • 所有节点的值都是唯一的。
  • p、q 为不同节点且均存在于给定的二叉树中。

注意:本题与主站 236 题相同:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台

代码:

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q) {
        if(root==null||root==p||root==q) 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;
    }
}

运行结果: 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1049191.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊家用取暖器UL1278测试报告办理申请

取暖器是指用于取暖的设备,取暖设备根据加热介质不同、加热原不同,大体可以分为:燃气取暖设备、电加热取暖设备、锅炉取暖设备、电壁挂炉取暖。但一般这类产品要上架美国亚马逊平台都必须要办理UL1278测试报告。 适用产品范围: U…

刘强东再次拿起低价武器,杀入这个万亿市场

京东的低价策略也要在汽车后市场打起来了? 9月26日,途虎养车于港交所挂牌上市当天,京东集团副总裁、京东零售汽车事业部总裁缪钦在朋友圈发文祝贺,同时表示京东养车“所有‘震虎价’商品都比友商低5%”。贺词与战书,同…

计算机网络 - 网络层

计算机网络 - 网络层 计算机网络 - 网络层 概述IP 数据报格式IP 地址编址方式 1. 分类2. 子网划分3. 无分类 地址解析协议 ARP网际控制报文协议 ICMP 1. Ping2. Traceroute 虚拟专用网 VPN网络地址转换 NAT路由器的结构路由器分组转发流程路由选择协议 1. 内部网关协议 RIP2. 内…

百货商场制作小程序商城的效果是什么

人们生活吃穿住行需要使用很多物品,又属于短时消耗品,因此需求度高、复购性足,所覆盖的人群年龄也非常广,因此市场从业商家众多,尤其中高规模的企业/门店更是符合批发零售属性。 但随着现在电商经济极速上涨&#xff…

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程

嵌入式Linux应用开发-基础知识-第十七章异常与中断的概念及处理流程 第十七章 异常与中断的概念及处理流程17.1 中断的引入17.1.1 妈妈怎么知道孩子醒了17.1.2 嵌入系统中也有类似的情况 17.2 中断的处理流程17.3 异常向量表17.4 参考资料 第十七章 异常与中断的概念及处理流程…

数据结构---课后习题(第一章)

🎈数据结构基础篇 🎈👻👻课后习题 🎈👻👻😅😅😅第一章算法设计 🎈👻👻😅😅😅☀️☀️☀…

Linux和本地Windows如何互传文件(sz和rz指令)

目录 关于 rzsz 注意事项 安装软件 rz的使用(本地主机文件传到Windows中) sz的使用(Linux中的文件传到本地Windows主机中) 关于 rzsz 这个工具用于 windows 机器和远端的 Linux 机器通过 XShell 传输文件. 安装完毕之后可以通过直接拖拽的方式将文件…

景联文数据标注:AI大模型产生幻觉该如何应对?

大语言模型在诸多下游任务中展现出令人瞩目的能力,然而在运用过程中仍然存在一些问题。幻觉现象是目前阻碍大模型成功应用的关键问题之一。 什么是大模型幻觉问题? 大模型幻觉问题是指一些人工智能模型在面对某些输入时,会生成不准确、不完整…

高效搜索,提升编程效率

一、搜索效率 1.1魔法上网 网址: 一个很变态但可以让你快速学会计算机的方法…………_哔哩哔哩_bilibili 谷歌镜像: https://search.fuyeor.com/zh-cn/Google 谷歌学术: https://link.zhihu.com/?targethttps%3A//scholar.lanfanshu.cn/…

常用SQL语法总结

1.库操作 1.1.创建数据库 CREATE DATABASE 语句用来创建一个新的数据库。 语法:CREATE DATABASE DatabaseName; DatabaseName 为数据库名字,它的名字必须是唯一的,不能和其它数据库重名。 1.2.删除数据库 DROP DATABASE语句用来删除已经…

notepad++堆缓冲区溢出漏洞CVE-2023-40031分析与复现

漏洞概述 Notepad 是一款知名的开源代码编辑器,运行系统为Windows,支持多种编程语言。近日,安全研究人员针对 Notepad进行检查,发现了不少安全漏洞。其中评分为 7.8 分(CVSS3,总分10分)的堆缓冲…

全球与中国静音发电机市场:增长趋势、竞争格局与前景展望

静音发电机是一种设计用于减少噪音水平的发电机,通常被称为低噪音发电机或静音发电机组。这些发电机被特别设计,以降低发电运行时产生的声音,以满足对噪音控制和环境友好性的需求。 噪音控制技术:静音发电机通常采用各种噪音控制技…

51单片机控制电动机正反转,PWM调速,记录转动圈数。

今天的实验需要用到的材料有:51单片机最小系统,4X4的矩阵键盘,DC直流6V-12V带编码器电机,L298N模块,一个led小灯。下面把产品截图展示一下: 单片机就不展示了,都一样,下面是接线图&a…

【Linux学习】04Linux实用操作

Linux(B站黑马)学习笔记 01Linux初识与安装 02Linux基础命令 03Linux用户和权限 04Linux实用操作 文章目录 Linux(B站黑马)学习笔记前言04Linux实用操作各类小技巧(快捷键)ctrl c 强制停止ctrl d 退出或…

手把手教你制作精美的新店开业微传单

如果你准备开设一家新店,那么制作一份具有吸引力的微传单是宣传店铺的重要手段之一。下面,我们将通过乔拓云平台,手把手教你制作一份有吸引力的新店开业微传单。 1. 注册并登录乔拓云账号 首先,你需要在乔拓云官方网站注册一个账号…

麒麟信安服务器操作系统V3.5.2重磅发布!

9月25日,麒麟信安基于openEuler 22.03 LTS SP1版本的商业发行版——麒麟信安服务器操作系统V3.5.2正式发布。 麒麟信安服务器操作系统V3定位于电力、金融、政务、能源、国防、工业等领域信息系统建设,以安全、稳定、高效为突破点,满足重要行…

​分拆菜鸟将使阿里巴巴股票迎来新一轮上涨?

来源:猛兽财经 作者:猛兽财经 总结: (1)阿里巴巴(BABA)最近公布的季度财报显示,该公司有能力实现快速盈利。 (2)据报道,阿里巴巴正计划分拆菜鸟集团,并将在香…

JavaScript高阶班之ES6 → ES11(八)

JavaScript高阶班之ES6 → ES11 1、ES6新特性1.1、let 关键字1.2、const关键字1.3、变量的解构赋值1.3.1、数组的解构赋值1.3.2、对象的解构赋值 1.4、模板字符串1.5、简化对象写法1.6、箭头函数1.7、函数参数默认值1.8、rest参数1.9、spread扩展运算符1.9.1、数组合并1.9.2、数…

瀑布流布局

效果&#xff1a; 代码&#xff1a; APP.vue <template><waterFallVue :list"list"></waterFallVue> </template> <script setup> import waterFallVue from "./components/waterFallVue .vue"const list [{height: 300,…

欧洲FBA专线海运与陆运的差别

随着全球电商市场的快速发展&#xff0c;越来越多的卖家选择将产品销售到欧洲市场。然而&#xff0c;面对欧洲境内的物流问题&#xff0c;卖家们往往会面临一个重要的选择&#xff1a;选择欧洲FBA专线时是选择海运还是陆运?这两种运输方式在时效、成本和服务质量上都有所不同&…