leetcode 669. 修剪二叉搜索树

news2024/12/24 0:24:26

2023.7.15

         知道了如何删除二叉树节点的逻辑之后,这题就不难了。 可以参考删除二叉搜索树中的节点这篇文章。

        下面直接上代码:

class Solution {
public:
    TreeNode* trimBST(TreeNode* root, int low, int high) {
        if(root == nullptr) return root;
        root->left = trimBST(root->left,low,high);
        root->right = trimBST(root->right,low,high);

        if(root->val<low || root->val>high)
        {
            if(root->left==nullptr && root->right==nullptr)
            {
                return nullptr;
            }
            else if(root->left == nullptr)
            {
                return root->right;
            }
            else if(root->right == nullptr)
            {
                return root->left;
            }
            else
            {
                TreeNode* cur = root->right;
                while(cur->left != nullptr)
                {
                    cur = cur->left;
                }
                root->val = cur->val;
                root->right = trimBST(root->right,low,high);
                // cur->left = root->left;
                // return root->right;
            }
        }
        

        return root;
    }
};

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

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

相关文章

MacOS使用USB接口与IPhone进行Socket通信

演示效果如下: 开源地址: GitHub - rsms/peertalk: iOS and Mac Cocoa library for communicating over USB 克隆源码: git clone https://github.com/rsms/peertalk.git 克隆后打开peertalk然后启动xcode工程 先启动MacOS服务端工程,再启动iOS客户端工程 客户端 服务端

[java安全]URLDNS

文章目录 [java安全]URLDNS前言HashMapURLURLStreamHandler调用过程调用链流程图POC [java安全]URLDNS 前言 URLDNS利用链是一条很简单的链子&#xff0c;可以用来查看java反序列化是否存在反序列化漏洞&#xff0c;如果存在&#xff0c;就会触发dns查询请求 它有如下优点&a…

spring复习:(35)在getBean时,在哪里根据普通bean和工厂bean进行区分处理来返回的?

在AbstractBeanFactory的doGetBean方法&#xff1a; 调用的getObjectForBeanInstance方法部分代码如下&#xff1a; 如果不是工厂bean,则直接将实例返回&#xff0c;否则调用getObjectFromFactoryBean方法获取工厂bean的getObject方法返回的对象 protected Object getObjectF…

Gradle和Aritifactory

Gradle和Aritifactory 本文链接&#xff1a;https://blog.csdn.net/feather_wch/article/details/131746580 文章目录 Gradle和AritifactoryGradle基本介绍Gradle插件开发流程本地仓库artifactory搭建添加仓库使用本地仓库gradle插件仓库引入 Gradle基本介绍 1、Gradle是一种…

node使用fluent-ffmpeg把webm格式的音频转成mp3

下载并安装ffmpeg http://ffmpeg.org/download.html?aemtntg-on https://www.gyan.dev/ffmpeg/builds/ 配置环境变量&#xff1a; 查询版本 装包&#xff1a; yarn add fluent-ffmpeg const ffmpeg require(fluent-ffmpeg)ffmpeg(/temp/ai/hello.webm).output(/temp/ai/h…

leetcode 542. 01 矩阵

给定一个由 0 和 1 组成的矩阵 mat &#xff0c;请输出一个大小相同的矩阵&#xff0c;其中每一个格子是 mat 中对应位置元素到最近的 0 的距离。 两个相邻元素间的距离为 1 。 示例 1&#xff1a; 输入&#xff1a;mat [[0,0,0],[0,1,0],[0,0,0]] 输出&#xff1a;[[0,0,0],…

TaskExecutor和ExecutorService的简单整合

文章目录 一、遇到问题二、达成目的三、开始调研1、使用Async获取线程池流程2、查看中间件线程池工具类3、观察AsyncConfigurer接口4、查看TaskExecutorAdapter源码 四、复盘总结 一、遇到问题 自己负责的项目想通过引入一个中间件&#xff0c;达到在业务场景维度的全链路日志…

【【51单片机的蜂鸣器-11】】

51单片机的蜂鸣器 DS1302我一直有问题搁置了几百天了 先来看看蜂鸣器 搞了一个礼拜verilog然后出去吃饭 估计自己得有10多天没看c语言和51单片机了 现在先处理一下蜂鸣器的问题 蜂鸣器 蜂鸣器分为有源蜂鸣器和无源蜂鸣器 有源内部自带震荡源&#xff0c;将正负极接上直流电压…

类之间的关系

1. 关系强弱顺序&#xff08;由强到弱&#xff09; 泛化实现组合聚合关联依赖 图中&#xff0c;组合和聚合标错了 2. 依赖 虚线箭头&#xff0c;箭头指向被依赖类依赖关系描述了两个类之间的临时关系。通常不会持续整个对象的生命周期&#xff0c;而是创建一个临时的关系以满…

string【1】介绍与使用(超详解哦)

string的介绍与使用 引言string类常用接口构造函数容量操作size与lengthcapacityresizereserveclearempty 元素访问迭代器访问beginendrbeginrend范围for 下标访问 字符串修改insertappendpush_backoperatorpop_backerase 字符串查找findrfind 非成员函数operator>>opera…

光场成像2.0——聚焦型光场相机

光场2.0 1. 发展历程 由于光场1.0从结构上子图像的分辨率严重依赖MLA子透镜的数量&#xff0c;因此分辨率一直受限&#xff0c;限制了光场1.0结构的广泛应用。针对此不足&#xff0c;在2008年&#xff0c;又一篇伟大的论文出现了&#xff0c;该论文提出了全分辨率光场渲染的概…

CS拒绝连接,Cobalt Strike连接失败,Cobalt Strike使用方法(一)

拒绝连接 connection refused:connect。 kali端&#xff08;服务器端&#xff09;和本地端win10。看看端口开启状态 先启动服务器端 查看端口开启状态&#xff0c;确定50050端口开启&#xff0c;可以参阅本文章点击跳转 没问题再往下看。 使用步骤 chmod 777 ./teamserver…

【运维工程师学习】Centos中MySQL替换MariaDB

【运维工程师学习】Centos8中MySQL替换MariaDB 1、查看已有的mysql2、MySQL官网tar包下载3、找到下载路径解压4、移动解压后的文件夹到/usr/local/mysql5、创建data文件夹&#xff0c;一般用于存放数据库文件数据6、创建用户组7、更改用户文件夹权限8、生成my.cnf文件9、编辑my…

排序子序列,倒置字符串讲解(图文并茂)

目录 1.排序子序列 2.倒置字符串 1.排序子序列 排序子序列_牛客笔试题_牛客网 (nowcoder.com) 首先题干中提到非递增序列和非递减序列&#xff0c;那么我们就要先弄明白什么是上述2种序列&#xff1a; 非递增序列&#xff1a;a[i] > a[i1] 如&#xff1a;3 2 1 或者 3 3 …

运动控制-达妙C#开源USB2CAN例程

C# Can总线资料不多, 达妙USB2CAN入口 http://www.dmbot.cn/forum.php?modviewthread&tid328&extrapage%3D1

怎么自学网络安全?遇到问题该怎么解决?

趁着今天下班&#xff0c;我花了几个小时整理了下&#xff0c;非常不易&#xff0c;希望大家可以点赞收藏支持一波&#xff0c;谢谢。 我的经历&#xff1a; 我 19 年毕业&#xff0c;大学专业是物联网工程&#xff0c;我相信很多人在象牙塔里都很迷茫&#xff0c;到了大三大…

帝国cms如何判断首页高亮显示

通过简单的代码判断当前页面是否为首页并且进行高亮的代码如下&#xff1a; 判断逻辑是获取当前栏目id&#xff0c;如果为空则为首页。 条件判断代码&#xff1a; <?php if(empty($GLOBALS[navclassid])){echo class"active";}?> 需要特别说明的此判断会…

二进制文件的Python写入与读取

二进制文件的Python编写 这么基础的东西&#xff0c;必然用内置的就好 二进制文件的Python读写 重要提示 p.s. 1 >>> bHello World.decode() "Hello World" True >>> example import struct with open(binary_file.bin, wb) as file:data b…

【华为机试】HJ17 坐标移动详解+完整源代码示例

忙碌了一周&#xff0c;一直没时间更新&#xff0c;趁着周末来更新第二个题目。 题目 题目解析 这个题目相比于上一个题目来说&#xff0c;会简单一些&#xff0c;不涉及到那些复杂的算法&#xff0c;就是对于字符串的处理。 算法步骤 输入一个字符串根据分号&#xff0c;将…