2024/4/2—力扣—二叉树的最近公共祖先

代码实现:

思路:

递归判断左子树和右子树,查找p或者q是否在当前节点的子树上
1,在同一子树上,同一左子树,返回第一个找到的相同值,同一右子树上,返回第一个找到的相同值
2,不在同一子树是,说明当前节点就是他们的公共祖先节点

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     struct TreeNode *left;*     struct TreeNode *right;* };*/
struct TreeNode* lowestCommonAncestor(struct TreeNode *root, struct TreeNode *p, struct TreeNode *q) {if (p == root || q == root || root == NULL) {return root;}struct TreeNode *l = lowestCommonAncestor(root->left, p, q);struct TreeNode *r = lowestCommonAncestor(root->right, p, q);if (l != NULL && r != NULL) {return root;}if (l == NULL && r != NULL) {return r;} else if (l != NULL && r == NULL) {return l;} else {return NULL;}
}

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Godot插值、贝塞尔曲线和Astar寻路

一、插值 线性插值是采用一次多项式上进行的插值计算&#xff0c;任意给定两个值A和B&#xff0c;那么在A和B之间的任意值可以定义为&#xff1a;P(t) A * (1 - t) B * t&#xff0c;0 < t < 1。 数学中用于线性拟合&#xff0c;游戏应用可以做出跟随效果&#xff08;…

一份完整的软件测试报告长什么样

软件测试报告是软件测试阶段的重要输出&#xff0c;它为软件开发团队、客户或管理层等利益相关方提供了详细的测试结果和软件质量评估。一份完整的软件测试报告通常包含以下几个关键部分&#xff1a; 引言和概述&#xff1a;   报告的开始部分通常有一个引言或概述&#xff…

基于单片机室内温湿度监测系统仿真设计

**单片机设计介绍&#xff0c;基于单片机室内温湿度监测系统仿真设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机室内温湿度监测系统仿真设计的沟通概要主要涉及以下几个方面&#xff1a; 一、项目背景与目标 首…

starganvc2变声器项目实战及其源码解读

1.数据与项目文件解读 数据文件目录如下所示&#xff0c;需要注意的是&#xff0c;我们并不能直接对声音进行建模&#xff0c;而需要对声音数据进行预处理&#xff0c;从而得到一系列数值特征&#xff0c;然后对特征进行建模&#xff0c;特征数据存储到processed文件夹中 2.环…

局域网共享文件夹怎么加密?局域网共享文件夹加密方法介绍

在企业局域网中&#xff0c;共享文件夹扮演着重要的角色。为了保护数据安全&#xff0c;我们需要加密保护局域网共享文件夹。那么&#xff0c;局域网共享文件夹怎么加密&#xff1f;下面我们来了解一下吧。 局域网共享文件夹加密方法 局域网共享文件夹加密推荐使用共享文件夹加…

Java 8 内存管理原理解析及内存故障排查实践

介绍Java8虚拟机的内存区域划分、内存垃圾回收工作原理解析、虚拟机内存分配配置&#xff0c;介绍各垃圾收集器优缺点及场景应用、实践内存故障场景排查诊断&#xff0c;方便读者面临内存故障时有一个明确的思路和方向。 一、背景 Java是一种流行的编程语言&#xff0c;可以在不…

代码随想录阅读笔记-二叉树【删除二叉搜索树节点】

题目 给定一个二叉搜索树的根节点 root 和一个值 key&#xff0c;删除二叉搜索树中的 key 对应的节点&#xff0c;并保证二叉搜索树的性质不变。返回二叉搜索树&#xff08;有可能被更新&#xff09;的根节点的引用。 一般来说&#xff0c;删除节点可分为两个步骤&#xff1a;…

[通俗易懂]《动手学强化学习》学习笔记1-第1章 初探强化学习

文章目录 前言第1章 初探强化学习1.1 简介序贯决策&#xff08;sequential decision making&#xff09;任务&#xff1a;强化学习与有监督学习或无监督学习的**区别**&#xff1a;改变未来 1.2 什么是强化学习环境交互与有监督学习的区别1&#xff1a;改变环境 &#xff08;说…

网易邮箱删除指定邮箱

一、 背景&#xff1a; 我们平时经常会收到很多恶意或者一些不重要的邮件&#xff0c;并且经常会堆满邮箱&#xff0c;导致看邮箱的时间一堆未读邮件&#xff0c;手动删除一些不重要的邮件需要一个一个的去点击&#xff0c;并且还要去判断是指定的发件人的邮件&#xff0c;像…

02-JDK新特性-try-with-resources自动管理资源关闭

try-with-resources 为什么要介绍这个了 看看一下以下代码&#xff1a; public static void fileCopyByTryWithResources(File src, File des) throws IOException {try (FileInputStream fis new FileInputStream(src); FileOutputStream fos new FileOutputStream(des);…

Mysql底层原理七:InnoDB 行记录

1.行格式 1.1 Compact行格式 1.1.1 示意图 1.1.2 准备一下 1&#xff09;建表 mysql> CREATE TABLE record_format_demo (-> c1 VARCHAR(10),-> c2 VARCHAR(10) NOT NULL,-> c3 CHAR(10),-> c4 VARCHAR(10)-> ) CHARSETascii ROW_FORMATCOM…

GIS与数字孪生共舞,打造未来智慧场景

作为一名数字孪生资深用户&#xff0c;近日我深刻理解到GIS&#xff08;地理信息系统&#xff09;在构建数字孪生体中的关键作用。 数字孪生技术旨在构建现实世界的虚拟镜像&#xff0c;而GIS则是这一镜像中不可或缺的空间维度框架和导航灯塔。数字孪生的核心是通过数字化方式…