代码随想录day19 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作 、 450.删除二叉搜索树中的节点

代码随想录day19 235. 二叉搜索树的最近公共祖先 、701.二叉搜索树中的插入操作 、 450.删除二叉搜索树中的节点

235. 二叉搜索树的最近公共祖先

不算难,分类讨论即可

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

701.二叉搜索树中的插入操作

比较简单,自己可以写出

class Solution {
public:TreeNode* insertIntoBST(TreeNode* root, int val) {if (root == nullptr) {return new TreeNode(val);}if (root->val > val) {root->left = insertIntoBST(root->left, val);}if (root->val < val) {root->right = insertIntoBST(root->right, val);}return root;}
};

450.删除二叉搜索树中的节点

这道题有点麻烦,我的问题主要出在同时拥有左右节点得策略,想返回右子树的最左结点,结果总是有点问题,不如卡哥的返回右节点的方法好

class Solution {
public:TreeNode* deleteNode(TreeNode* root, int key) {if (root == nullptr) {return root;}if (root->val > key) {root->left = deleteNode(root->left, key);return root;} if (root->val < key) {root->right = deleteNode(root->right, key);return root;}TreeNode *res = root;if (root->left == nullptr) {res = root->right;delete root;return res;}if (root->right == nullptr) {res = root->left;delete root;return res;}res = root->right;TreeNode *cur = root->right;while (cur->left != nullptr) {cur = cur->left;}cur->left = root->left;delete root;return res;}
};

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

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

相关文章

ubuntu 源码安装postgis插件

ubuntu 22 源码安装postgresql 16 教程 一、安装依赖&#xff1a; # 我的各个版本 # libgeos-dev 3.10.2 # libproj-dev 8.2.1 # libgdal-dev 3.4.1 # libxml2-dev 2.9.13 apt install -y libgeos-dev libproj-dev libgdal-dev libxml2-dev二、下载解压源码&#xff1a; …

安全的备忘录工具有哪些 安全好用的备忘录

在这个数字化的时代&#xff0c;我们的生活中充斥着各种各样的信息&#xff0c;从工作计划到个人琐事&#xff0c;从账号密码到重要日期&#xff0c;这些信息都需要我们牢记。然而&#xff0c;人的记忆毕竟有限&#xff0c;于是&#xff0c;备忘录工具成为了我们日常生活中不可…

bash XXX.sh文件和直接运行XXX.sh的区别

区别&#xff1a; bash XXX.sh 明确说明使用bash作为脚本的解释器不需要文件有执行权限 XXX.sh 需要指定相关解释器。如果第一行是#!/bin/bash则使用bash&#xff0c;如果是#!/bin/sh&#xff0c;则使用sh作为解释器需要有执行权限:通过chmod x 文件名指定 注意: #!是特殊标…

Could not load dynamic library ‘cudart64_100.dll‘

python代码报错 Could not load dynamic library cudart64_100.dll; dlerror: cudart64_100.dll not found 2024-07-22 14:19:21.931639: I tensorflow/stream_executor/cuda/cudart_stub.cc:29] Ignore above cudart dlerror if you do not have a GPU set up on your machine…

运行 npm install 报错-4048

我在已经开发中的项目&#xff0c;执行 npm install 命令时&#xff0c;出现报错&#xff1a; 并且之前在帖子中提到的报错类型还不一样&#xff08;帖子内容如下&#xff09;&#xff1a; 运行 npm run dev 总报错_运行npm run dev报错-CSDN博客 该报错内容主要为权限导致的&…

C# 编程机器人

右边写代码&#xff0c;控制左边机器人移动 冯腾飞/编程机器人 - Gitee.com

ActiViz中的选择点vtkWorldPointPicker

文章目录 1. vtkWorldPointPicker简介2. 类的位置和继承关系3. 选择机制4. 返回的信息5. 选择的条件和参数6. 与屏幕空间选择器的比较7. 性能特征8. 应用场景9. 与其他vtk选择器的集成10. 完整示例总结1. vtkWorldPointPicker简介 vtkWorldPointPicker是Visualization Toolkit…

SpringBoot框架学习笔记(五):静态资源访问、Rest风格请求处理、配置视图解析器、接收参数的相关注解详解

1 WEB开发-静态资源访问 1.1 基本介绍 &#xff08;1&#xff09;只要静态资源放在类路径的以下目录&#xff1a;/static、/public、/resources、/META-INF/resources 可以被直接访问。maven项目的类路径即为main/resources目录--对应SpringBoot源码为WebProperties.java类 …

基于STM32的PM2.5监测系统设计

目录 1、设计要求 2、系统功能 3、演示视频和实物 4、系统设计框图 5、软件设计流程图 6、原理图 7、主程序 8、总结 &#x1f91e;大家好&#xff0c;这里是5132单片机毕业设计&#xff0c;今天给大家分享的是《基于STM32的PM2.5监测系统设计》。 设备的详细功能见网…

Nginx 怎样处理请求的重试机制?

&#x1f345;关注博主&#x1f397;️ 带你畅游技术世界&#xff0c;不错过每一次成长机会&#xff01; 文章目录 Nginx 怎样处理请求的重试机制&#xff1f;一、为何需要重试机制&#xff1f;二、Nginx 中的重试机制原理三、Nginx 重试机制的配置参数四、Nginx 重试机制的实际…

GPT盘新增容量后如何扩容?

场景&#xff1a;一块5T的GPT盘&#xff0c;现有需求再加10T&#xff0c; 在虚拟化平台加10T盘后&#xff0c;机器不重启&#xff0c;执行命令 echo 1 > /sys/block/sdb/device/rescan刷新磁盘容量&#xff0c;可看到容量已刷出。 但执行fdisk /dev/sdb时&#xff0c;发现创…

《0基础》学习Python——第二十二讲__网络爬虫/<5>爬取豆瓣电影封面图

一、爬取豆瓣电影的图片封面 1、经过上节课我们所爬取的豆瓣电影的电影名、年份、国家、导演、主演、剧情&#xff0c;那么接下来我们将学习如何去爬取这些电影的图片&#xff0c;并将这些图片存放在文件夹中。 2、过程实现&#xff1a; 2.1、获取网页源码 首先还是和爬取电影名…

Air780EP-AT开发-HTTP应用指南

简介 关联文档和使用工具&#xff1a; AT固件获取AT指令手册 概述 4G模块支持HTTP和HTTPS协议&#xff0c; HTTP应用的基本流程如下&#xff1a; 1、激活PDP&#xff08;参考&#xff1a;http://oldask.openluat.com/article/937&#xff09;2、初始化HTTP服务3、设置HTTP会话…

服务器上使用Docker部署sonarQube,并集成到Jenkins实现自动化。

目标是要在目标服务器上使用docker工具部署好sonar环境&#xff0c;然后再集成到Jenkins中实现自动化的代码审查工作。 Docker 首先Dokcer的源大部分现在都用不了&#xff0c;于是我上网查询&#xff0c;终于找到了一个可用的镜像。 编辑/etc/docker/daemon.json文件&#x…

经典网络(一)resnet

参考了网上的一些代码&#xff0c;对resnet有了更深入的理解。因此做了两个类&#xff0c;一个是ResidualChunk&#xff0c;一个是ResNet18。如果使用了nn.BatchNorm2d,则在conv函数中设置bias是无用的&#xff0c;可以设置为False。 在下面会列出来实践的代码&#xff0c;其中…

Linux中的时间函数

参考&#xff1a; 几种取时间的方法&#xff08;附代码&#xff09; Linux中gmtime和localtime的区别(time_t格式转换为tm格式) C 库函数 - time() mktime和localtime_r能在多线程环境下使用么&#xff1f; Linux_C环境编程&#xff1a;时间日期函数总结 细说时间测量RDT…

docker php8.1+nginx base 镜像 dockerfile 配置

这个是docker 配置的base dockerfile 如果搭建phpnginx 环境&#xff0c;可以直接使用这个dockerfile配置。直接在你代码里面的dockerfile 引用此基础镜像。 # 使用官方的 PHP 镜像作为基础镜像 FROM php:8.1-fpm # 更换国内源并安装系统依赖 RUN rm -rf /etc/apt/sources.l…

Matlab得到无背景透明图片

注意&#xff1a;本方法是复制得到透明图片&#xff0c;不是保存得到透明图 &#xff01;&#xff01;&#xff01; matlab画图 设置窗口属性背景为“无”&#xff0c;可以代码设置&#xff0c;也可以在图窗属性里编辑 在&#xff1a;“工具”菜单子菜单中单击“复制属性”&…

利用代理IP爬取当当网数据做数据分析

利用代理IP爬取当当网(或其他任何网站)的数据进行数据分析是一个涉及多个步骤和技术的过程。这个过程需要谨慎处理,以确保遵守相关法律法规和网站的robots.txt文件以及服务条款,避免给网站服务器带来不必要的负担,以及防止自己的IP地址被封禁。以下是实现这一过程的一般步…

探索NVM:让Node.js开发如虎添翼的利器

文章目录 前言一、NVM简介&#xff1a;版本管理的瑞士军刀二、NVM能解决什么问题&#xff1f;三、如何使用NVM​&#xff1f;总结 前言 在这个日新月异的编程世界里&#xff0c;Node.js凭借其高效的非阻塞I/O操作和轻量级的事件驱动模型&#xff0c;成为了全栈开发、微服务架构…