力扣 236. 二叉树的最近公共祖先

news2024/9/22 23:26:03

题目来源:https://leetcode.cn/problems/lowest-common-ancestor-of-a-binary-tree/description/

 

 C++题解:弄清思路就好写,理不清思路就唉。。

递归法:

1. 确定函数返回类型和参数:目标是最近公共节点,所以返回类型为TreeNode*,参数为当前节点和两个目标节点。

2. 确定终止条件:遇到空则返回空,遇到q或p节点,则将其返回。

3. 确定单层递归逻辑(重点!):如果左右子树都返回节点,说明当前节点才是公共节点;如果只有左子树返回节点,右子树为空,返回左子树节点,因为右子树为空说明右子树没有目标节点,假设左子树遇到的是目标节点p,那么目标节点q一点为目标节点p的子树节点;其它情况,返回右子树节点,因为如果两子树都为空,就返回空节点。

/**
 * 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) {
        if(root == p || root == q || root == NULL) return root;
        TreeNode* lefttree = lowestCommonAncestor(root->left, p, q);
        TreeNode* righttree = lowestCommonAncestor(root->right, p, q);
        if(lefttree && righttree) return root;
        else if(lefttree) return lefttree;
        else return righttree;
    }
};

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

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

相关文章

debian linux安装配置企业私有网盘

一、适用环境 1、中小型企业的某些部门之间经常要进行数据的交换与共享时,则可使用企业内部专业的服务器,把剩余的硬盘存储容量配置成为共享网盘的形式,供部门之间进行数据交换。 2、可将多个硬盘通过debian Linux系统组成软阵列的1个逻辑盘…

Scrapy框架之MongoDB聚合操作

目录 MongoDB聚合操作 聚合操作的基本语法 常用的聚合操作 管道命令之$group 按照某个字段进行分组 详解 计算集合中某个字段的平均值 常用表达式 管道命令之$match 示例 管道命令之$sort 管道命令之$skip 和 $limit 管道命令之$project MongoDB聚合操作 在…

ts:Set、Map

观看小满老师课程的随笔~ 前言 与 原生 js 中的原理和方法是相同的,这里只是用了 ts 中的 强类型 一、Set 天然去重,引用类型除外增删改查:add、has、delete、clear循环:forEach、entries、keys、for...of(内置的有iterator迭代…

CCF-CSP真题《202305-2 矩阵运算》思路+python,c++满分题解

想查看其他题的真题及题解的同学可以前往查看:CCF-CSP真题附题解大全 试题编号:202305-2试题名称:矩阵运算时间限制:5.0s内存限制:512.0MB问题描述: 题目背景 Softmax(QKTd)V 是 Transformer 中注意力模块的…

javac命令编译.java源文件报错“编码GBK的不可映射字符“

原因在于.java源文件编码方式是UTF-8 二cmd DOS窗口编码格式是GBK 解决办法 javac -encoding UTF-8 *.java

Kettle 实现动态表查询

文章目录 前言动态表名查询数据 :一、获取表名1、新建一个转换getTableName,拖入获取系统信息,字段选择,设置变量2、打开 获取系统信息 编辑界面,填写名称,点击类型选择要获取的信息类型3、打开字段选择,选…

深蓝学院C++基础与深度解析笔记 第 9 章 序列与关联容器

第 9 章 序列与关联容器 1. 容器概述 A、容器: 一种特殊的类型,其对象可以放置其它类型的对象(元素) – 需要支持的操作:对象的添加、删除、索引、遍历 – 有多种算法可以实现容器,每种方法各有利弊B、容…

nvdiffrecmc在Windows上的配置及使用

nvdiffrecmc是NVIDIA研究院开源的项目,源代码地址:https://github.com/NVlabs/nvdiffrecmc,论文为《Shape, Light, and Material Decomposition from Images using Monte Carlo Rendering and Denoising》,使用Monte Carlo渲染和去…

为什么有些Buck-Boost芯片没有输出负压?

大家好,这里是大话硬件。 今天分享一篇和Buck-Boost拓扑相关的问题,也是在最开始接触Buck-Boost芯片时,就在内心产生了疑问。 在开始学习DC-DC拓扑时,很多资料都说,非隔离型的DC-DC拓扑常见的有3种,分别是…

C语言进阶---文件操作

1、什么是文件 磁盘上的文件是文件 但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。(从文件功能的角度来分类的)。 1.1、程序文件 包括源程序文件(后缀为.c),目标文件&#x…

若依(ruoyi-cloud)脚手架解读,一篇精通,包票上手~

视频教程传送门: 基于SpringCloud Alibaba技术栈,若依微服务版(RuoYi-Cloud)脚手架入门精解,保证上手那种~_哔哩哔哩_bilibili基于SpringCloud Alibaba技术栈,若依微服务版(RuoYi-Cloud)脚手架入门精解,保证上手那种~…

vscode 插件系统的运行机制!

做vscode二次开发有一段时间了,平时都是任务比较重,最近有时间做下总结,详细的讲解下vscode 插件系统的运行机制,vscode做为最受欢迎的编辑器,有着庞大的插件市场。其插件系统确实很复杂,文章很长&#xff…

构建交互式数据集展示:Gradio的Dataset模块详解

❤️觉得内容不错的话,欢迎点赞收藏加关注😊😊😊,后续会继续输入更多优质内容❤️ 👉有问题欢迎大家加关注私戳或者评论(包括但不限于NLP算法相关,linux学习相关,读研读博…

Visual C++中的引用的具体理解

我是荔园微风,作为一名在IT界整整25年的老兵,今天来聊聊 Visual C中的引用。 在C中有一个引用的概念。引用就是一个变量的别名,它需要用另一个变量或对象来初始化自身。引用就像一个人的外号一样,例如:有一个人的名字叫诸葛大力,…

【压缩空气储能】非补燃压缩空气储能系统集成的零碳排放综合能源优化调度(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

软件工程作业创建表

设计表 4.按专业统计课程数量: sql SELECT Major, COUNT(*) AS Num FROM Course GROUP BY Major 5.按专业查询所有课程信息: sql SELECT * FROM Course WHERE Major 信息技术 6.统计“信息技术”专业的课程数量: sql SELECT COUNT(*) FROM Course WHERE Major 信息技术…

SIM长序列处理

原论文:Search-based User Interest Modeling with Lifelong Sequential Behavior Data for Click-Through Rate Prediction 主要是为了解决长序列带来的计算复杂度问题 解决方法是第一阶段先进性search,有softsearchhardsearch两种方式。 然后用mult-h…

SAP HANA使用SQL创建SCHEMA:

语法是 CREATE SCHEMA “<Schema_Name>” 使用图形方法创建 SAP HANA 表&#xff1a; 创建图形计算视图&#xff1a;

Spring面试题--单例bean是线程安全的吗?

Spring框架中的单例bean是线程安全的吗&#xff1f; 这个问题有一个前提 Spring框架中的bean是单例的吗&#xff1f; 答&#xff1a;是&#xff0c;我们可以通过scope注解来设置当前的bean是不是单例的 singleton : bean在每个Spring IOC容器中只有一个实例。 prototype&am…