Leetcode—236. 二叉树的最近公共祖先【中等】

news2025/3/1 22:04:23

2024每日刷题(142)

Leetcode—236. 二叉树的最近公共祖先

在这里插入图片描述

实现代码

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
class Solution {
public:
    TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) {
        function<TreeNode*(TreeNode*, int, int)> dfs = [&] (TreeNode* root, int p, int q) {
            if(root == nullptr) {
                return (TreeNode*)nullptr;
            }
            if(root->val == p || root->val == q) {
                return root;
            }

            TreeNode* left = dfs(root->left, p, q);
            TreeNode* right = dfs(root->right, p, q);
            // 在异侧
            if(left != nullptr && right != nullptr) {
                return root;
            }
            // 皆空
            if(left == nullptr && right == nullptr) {
                return (TreeNode*)nullptr;
            }
            // 在同侧
            return left != nullptr ? left: right;
        };
        return dfs(root, p->val, q->val);
    }
};

运行结果

在这里插入图片描述

之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!

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

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

相关文章

realsense D435l+mid360标定

目录 一、安装realsense环境 二、获取realsense D450L相机内参 三、标定雷达和相机 1.下载livox_camera_calib 2.修改配置参数 3.使用fastlio生成点云 4.标定 一、安装realsense环境 git clone https://github.com/IntelRealSense/librealsense.git cd librealsense //更…

JAVASE进阶day07(泛型,集合,Set,TreeSet,枚举,数据结构)

泛型 1.泛型的基本使用 限制集合存储的数据类型 package com.lu.day07.generics;/*** 定义了一个泛型类* E 泛型通配字母(不固定代替真实数据类型A-Z都可以)* 常见的泛型通配字母:* E:element 元素* T:type 类型* R:return 返回值类型* K:key 键* …

Blender 中导出模型fbx

准备模型&#xff1a;确保你的模型已经完成&#xff0c;并且所有的材质、纹理等都已设置好。 应用所有变换&#xff1a; 选择模型&#xff0c;按下 CtrlA&#xff0c;选择 "All Transforms" 以应用所有的变换&#xff08;位置、旋转和缩放&#xff09;。 导出模型&a…

sql常用语句:

1.联合查询 对表中的数据进行限制&#xff1b; 2.从一个表复制到另一个表 SELECT INTO 将数据复制到一个新表&#xff08;有的 DBMS 可以覆盖已经存在的表&#xff0c;这依赖于 所使用的具体 DBMS&#xff09; SELECT *&#xff08;字段&#xff09; INTO CustCopy FROM Cu…

【Redis】简单了解Redis中常用的命令与数据结构

希望文章能给到你启发和灵感&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏 支持一下博主吧&#xff5e; 阅读指南 开篇说明一、基础环境说明1.1 硬件环境1.2 软件环境 二、Redis的特点和适用场景三、Redis的数据类型和使用3.1字符串&#xff08;String&…

ThinkPad,联想电脑F1(声音键)一直显示(亮)解决办法

ThinkPad&#xff0c;联想电脑F1&#xff08;声音键&#xff09;一直显示&#xff08;亮&#xff09; 打开“服务” 找到&#xff1a;Lenovo Hotkey Client Loader&#xff0c;选择”启动“

十九.升职加薪系列-JVM优化-解决JVM性能瓶颈的JIT即时编译器

前言 在很多年以前&#xff0c;做C或者C的程序员经常说Java语言的运行速度不如C或C&#xff0c;Java运行速度慢主要是因为它是解释执行的&#xff0c;而C或C是编译执行的&#xff0c;解释执行需要通过JVM虚拟机将字节码实时翻译成机器码&#xff08;边翻译边执行&#xff09;&…

ArcGIS Pro入门制图教程

地理信息系统 (GIS) 是一种使用地图显示和分析数据的方式。在本教程中&#xff0c;您将学习桌面 GIS 应用程序 ArcGIS Pro 的基础知识。 新加坡的一家旅行社希望制作一款宣传册&#xff0c;用于向游客介绍距离市中心热门目的地最近的火车站。该宣传册将与带有文本信息的地图相…

【Element-UI 表格表头、内容合并单元格】

一、实现效果&#xff1a; &#x1f970; 表头合并行、合并列 &#x1f970; &#x1f970; 表格内容行、合并列 &#x1f970; thead和tbody分别有单独的合并方法 二、关键代码&#xff1a; <el-table size"mini" class"table-th-F4F6FB" align&qu…

VUE_TypeError: Cannot convert a BigInt value to a number at Math.pow 解决方法

错误信息 TypeError: Cannot convert a BigInt value to a number at Math.pow vue 或 react package.json添加 "browserslist": {"production": ["chrome > 67","edge > 79","firefox > 68","opera >…

用神经架构搜索给LLM瘦身,模型变小,准确度有时反而更高

用神经架构搜索给 LLM 瘦身&#xff0c;同等准确度可让 LLaMA2-7B 模型大小降 2 倍。 大型语言模型&#xff08;LLM&#xff09;的一个主要特点是「大」&#xff0c;也因此其训练和部署成本都相当高&#xff0c;如何在保证 LLM 准确度的同时让其变小就成了非常重要且有价值的研…

SaaS模式的海外仓系统:有什么优势,理由是什么?

海外仓系统是海外仓使用频率最高的工具类系统&#xff0c;根据数据显示&#xff0c;超过84%的海外仓都会通过海外仓系统规划仓库管理。 然而&#xff0c;市场上存在许多不同的海外仓系统类型供大家选择&#xff0c;主要是分为两类&#xff1a;本地部署和saas模式。今天主要是和…

AI绘画何以突飞猛进? 从历史到技术突破, 一文读懂火爆的AI绘画发展史

前言 自从前段时间偶然间被当下AI绘画的水平震住之后&#xff08;超越一切的AI作画神器&#xff0c;和它创作的234个盔甲美女未来战士&#xff09; &#xff0c;作者深感当今AI绘画的飞速进展或许已远超所有人的预期。 而这里的前因后果&#xff0c;包括AI绘画的历史&#xff…

科研人必备!6个AI学术论文写作好帮手

人们都说一个新的人工智能时代已经到来&#xff0c;很多工作都将被这类机器人取代。不可否认的是&#xff0c;在学术界&#xff0c;有了 AI&#xff0c;科学研究人员将可以有更多时间专注在更有意义的任务上。科研人员可以利用 AI 工具分析大量数据、识别模式、做出决策&#x…

stm32h743 阿波罗v2 NetXduo http server CubeIDE+CubeMX

在这边要设置mpu的大小&#xff0c;要用到http server&#xff0c;mpu得设置的大一些 我是这么设置的&#xff0c;做一个参考 同样&#xff0c;在FLASH.ld里面也要对应修改&#xff0c;SECTIONS里增加.tcp_sec和 .nx_data两个区&#xff0c;我们用ram_d2区域去做网络&#xff…

电商IP分类及其应用是什么?

在现代电商运营中&#xff0c;IP地址不仅是网络通信的基础&#xff0c;也扮演着关键的角色&#xff0c;支持多种功能和应用场景。本文将介绍几种常见的电商IP分类&#xff0c;以及它们在电商领域中的具体应用。 1. 前台IP与后台IP 电商网站在运营过程中通常需要区分前台IP和后…

机器学习——L1 L2 范数 —>L1 L2正则化

1、L1范数和L2范数是机器学习和数据分析中经常使用的两种范数&#xff0c;它们之间存在多个方面的区别。 以下是关于L1范数和L2范数区别的详细解释&#xff1a; 一、定义差异 L1范数&#xff1a;也被称为曼哈顿范数&#xff0c;是向量元素的绝对值之和。对于一个n维向量x&am…

全网最全,保姆级Stable Diffusion系列入门使用教程(图生图、LoRA、提示词权重),建议收藏!

大家好&#xff0c;我是画画的小强 今天将给大家讲解 Stable Diffusion 入门使用教程的 图生图、LoRA和提示词权重的教程&#xff0c;如果你还没有使用或者安装SD&#xff0c;那么可以看看我的往期入门教程AI绘画『Stable Diffusion』面向小白的免费AI绘画工具&#xff1a;解压…

技术开发分享:商品详情APP原数据实时接口代码解析

商品详情app端原数据实时接口代码解析主要包括以下几个步骤&#xff1a; 获取商品ID&#xff1a;首先需要从淘宝的分享链接中提取商品ID&#xff0c;可以通过正则表达式匹配的方式获取。 构建请求URL&#xff1a;根据商品ID构建请求URL&#xff0c;通常包括淘宝的商品详情API地…

SAP HCM 如何知道标准程序有自定义增强代码 Configure Debugger Layer

导读 INTRODUCTION Configure Debugger Layer &#xff1a;今天分享下我在处理HCM业务中&#xff0c;如何通过debug的Configure Debugger Layer找到标准程序中的客制化的代码&#xff1f;也许在网上查看到很多找badi的方法或者其他的办法&#xff0c;但是这些办法比较繁琐&…