[力扣 Hot100]Day49 二叉树的最近公共祖先

news2024/9/28 19:21:40

题目描述

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

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

出处

思路

DFS搜p,q是否在左右子树中,相当于找到共同祖先后把祖先往上抬。

代码

class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        if(!root||root==p||root==q) return root;
        TreeNode* left=lowestCommonAncestor(root->left,p,q);
        TreeNode* right=lowestCommonAncestor(root->right,p,q);
        if(left&&right) return root;
        else{
            if(!left) return right;
            else return left;
        }
    }
};

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

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

相关文章

通过Forms+Automate+Lists+审批,实现用车申请流程

因为Sham公司目前用的用车申请流程是使用的K2系统,用户申请后,我们还需要单独另行输入Excel来汇总申请记录,当然K2也能导出,但是需要每次导出也是很麻烦的,而且不灵活。 刚好最近发现Forms与Automate能联通&#xff0…

开源流程图表库(03):mxGrap-绘制图形的利器

hello,我是贝格前端工场,本期分享基于JavaScript的图形库——mxGraph,这个工具绘制的图表可以导出html使用,欢迎老铁们持续关注、点赞,有需求可以私信我们。 mxGraph是一款功能强大的JavaScript图形库,用于…

上手OpenMMLab——从零开始通过mmagic上手AIGC

上手OpenMMLab——从零开始通过mmagic上手AIGC 目录 上手OpenMMLab——从零开始通过mmagic上手AIGC**写在前面****MMagic简介与特性****环境搭建与初步探索****文本生成与编辑****图像生成与风格迁移****音频生成与语音合成****高级应用与案例分享** **总结****附录&#xff1a…

同时上内网和外网(笔记本自带的无线网卡和另外购置无线网卡)

同时上内网和外网 两无线网卡连接内外网插入新网卡后,重命名网卡名字信息收集IPv4属性设置永久路由 两无线网卡连接内外网 插入新网卡后,重命名网卡名字 两网卡同时连接网络,使用ipconfig /all 获取信息,整理如下: 下…

VB语言回忆录——到了是该放弃VB语言的时候了么

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 VB语言回忆录——到了是该放弃VB语言的时候了么 前言初次接触编程开始学习VB开始发挥作用版本变迁有感而发 前言 4年前(2020年),微软 NET…

leetcode必刷题 96.不同的二叉搜索树

一、问题描述: 给你一个整数 n ,求恰由 n 个节点组成且节点值从 1 到 n 互不相同的 二叉搜索树 有多少种?返回满足题意的二叉搜索树的种数。 二、解题思路: 二叉树是由根节点,左右子树组成的,二叉搜索树要…

Angular基础---HelloWorld---Day3

文章目录 0.ng-model 的几种不同的class属性1.ng-model 的引用与属性的调用2.表单验证: (模版引用变量、ngModel 、ngif一起使用)3.根据class属性的值ng-invalid ,设置动态变化的样式 0.ng-model 的几种不同的class属性 引用ng-model 元素的c…

C++:类和对象(三)——拷贝构造函数和运算符重载

目录 一、拷贝构造函数 1.概念 2.特性 二、赋值运算符重载 1.运算符重载 2.赋值运算符重载 (1)注意的点: (2)赋值运算符不允许被重载为全局函数,只能重载为类的成员函数 (3)…

YOLO语义分割标注文件txt还原到图像中

最近做图像分割任务过程中,使用labelme对图像进行标注,得到的数据文件是json,转换为YOLO训练所需的txt格式后,想对标注文件进行检验,即将txt标注文件还原到原图像中,下面是代码: import cv2 im…

工资低适合下班做的6大副业,每一个都值得尝试!

2024年是最适合发展个人副业的时候!无论你是否有全职工作,如果你的主业还不能满足你的成就感,还不能满足你的生活需求,这6个下班可以做的副业都很值得尝试! 千金宝库做简单的网络任务 近年来,随着互联网技…

【异常 - 错误的更优解决方案】

目录: 前言异常(一) c语言原有的错误处理方式(二) 异常的概念(三)异常的使用1.异常的抛出与捕捉2.函数调用链中异常栈的展开原则 (四)5组测试及对应结论1.常规测试2.异常…

牛客周赛 Round 36

赛况 C题可惜,比赛时模拟没有想明白,只对了一半,赛后看了大佬们的题解后恍然大悟,而F题是压根没思路,况且F题部分分也比较难拿。 题目列表 A-小红的数位删除 思路 将读入的数字整除10做三次后输出即可 参考代码 #inc…

车载诊断协议DoIP系列 —— AL IPv6地址分配通用DoIP报头结构

车载诊断协议DoIP系列 —— AL IPv6地址分配&通用DoIP报头结构 我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师(Wechat:gongkenan2013)。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 本就是小人物,输了就是输了,不要在意别人怎么看自…

️ IP代理实操指南:如何在爬虫项目中避免封禁和限制 ️‍♂️

博主猫头虎的技术世界 🌟 欢迎来到猫头虎的博客 — 探索技术的无限可能! 专栏链接: 🔗 精选专栏: 《面试题大全》 — 面试准备的宝典!《IDEA开发秘籍》 — 提升你的IDEA技能!《100天精通鸿蒙》 …

动静态库

inode inode用于管理文件属性和内容 一个文件只能有一个inode,一个inode可以对应多个文件名 Linux进程中,打开的每一个文件都有对应的文件inode属性和文件页缓冲区(内存和磁盘的缓冲区) 软硬链接 硬链接 多个文件指向同一个i…

2024年软件测试怎么自我提升?“我“该如何做?

目录:导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结(尾部小惊喜) 前言 1、掌握基本的测试…

【Python】实战教学:给定二维numpy数组,将其转为csv格式并保存(指定列名)

【Python】实战教学:给定二维numpy数组,将其转为csv格式并保存(指定列名) 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质…

利用YOLOv5模型进行锥桶识别

目录 1. YOLOv5模型简介 2. 准备数据集 3. 训练模型 4. 模型评估 5. 模型部署与应用 6. 注意事项 在计算机视觉领域,目标检测是一项重要的任务,它可以帮助我们识别图像或视频中的特定物体并进行定位。而YOLOv5是一种高效的目标检测模型&#xff0c…

某app zzReqSign 算法还原分析过程

文章目录 前言一、抓包确定目标二、反编译定位加密位置三、反编译定位加密位置四、frida hook验证五、进一步分析so六、算法还原结束语------------------------------------------------END-------------------------------------------- 前言 工欲善其事必先利其器 准备工具…

Java“树结构TreeNode”用法详解,二叉树用法实现代码!!!

一、TreeNode用法 在Java中,TreeNode通常用于表示树结构中的节点。在树结构中,每个节点可以有零个或多个子节点,而TreeNode就是这个树结构中的一个节点。通常,树结构是通过链式结构实现的,每个节点有指向其子节点的引…