669. 修剪二叉搜索树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。

所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

示例 1:

输入:root = [1,0,2], low = 1, high = 2
输出:[1,null,2]

示例 2:

TreeNode *trimBST(TreeNode *root, int low, int high) {if (root == nullptr) return nullptr;//判断左区间if (root->val < low) {// 寻找符合区间[low, high]的节点TreeNode *right = trimBST(root->right, low, high);return right;}if (root->val > high) {// 寻找符合区间[low, high]的节点TreeNode *left = trimBST(root->left, low, high);return left;}root->left = trimBST(root->left,low,high);root->right = trimBST(root->right,low,high);return root;
}

输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3
输出:[3,2,null,1]

提示:

  • 树中节点数在范围 [1, 104] 内
  • 0 <= Node.val <= 104
  • 树中每个节点的值都是 唯一 的
  • 题目数据保证输入是一棵有效的二叉搜索树
  • 0 <= low <= high <= 104

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

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

相关文章

【前沿技术杂谈:迁移学习】欧洲人工智能法案对人工智能开发者的意义 [2023 年 12 月更新]

【前沿技术杂谈&#xff1a;迁移学习】欧洲人工智能法案对人工智能开发者的意义 [2023 年 12 月更新&#xff3d; 定义、一般原则和禁止做法人工智能系统开发者基于风险的义务固定和通用人工智能开发人员&#xff08;第 3/28 条&#xff09;基础模型的提供者&#xff08;第 28b…

C++笔记:类与对象的语法

文章目录 1 简单认识面向过程与面向对象1.1 面向过程1.2 面向对象 2 类的引入&#xff1a;struct -> class3 类的定义3.1 class 定义类的语法3.2 成员变量的命名建议 4 类的访问限定符4.1 class 和 struct 的区别4.2 C更喜欢用class定义类的原因 5 类的作用域5.1 声明定义合…

Cost S-curve

成本S曲线 Cost S-curve 每个月成本预算&#xff0c;柱形图 每个月成本累积&#xff08;合计&#xff09;&#xff1a;成本S曲线&#xff0c;折线图&#xff0c;但是肯定都是上升的 echarts图表&#xff1a;

c++ STL系列——(五)map

在C中&#xff0c;标准模板库&#xff08;STL&#xff09;提供了许多容器和算法&#xff0c;其中之一便是map。map是一种关联式容器&#xff0c;它提供了一种将键值对&#xff08;key-value pair&#xff09;相关联的方式&#xff0c;使得可以通过键值快速地查找、插入或删除元…

java客运管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java客运管理系统是一套完善的java web信息管理系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发&#xff0c;数据库为Mysql5.0&#…

洛谷C++简单题小练习day10—umi的函数

day10--umi的函数--2.13 习题概述 题目背景 umi 找到了一个神秘的函数 f。 题目描述 这个函数接受两个字符串 s1,s2。这些字符串只能由小写字母组成并且具有相同的长度。这个函数的输出是另一个长度与 s1,s2 相同的字符串 g。 g 的第 i 个字符等于 s1 的第 i 个字符和 s2…

Java实现中学生家校互联系统 JAVA+Vue+SpringBoot+MySQL

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 学生管理模块2.2 课堂表现模块2.3 考试成绩模块2.4 家校留言模块2.5 校园通知模块 三、系统设计3.1 用例设计3.2 实体类设计3.2.1 课堂表现实体类设计3.2.2 考试成绩实体类设计3.2.3 家校留言实体类设计3.2.4 校园通知实…

现代化端口扫描工具RustScan

今天是大年初五&#xff0c;喜迎财神 &#xff0c;祝大家✔️顺风顺水 ✔️诸事如意 ✔️财源滚滚 ✔️大吉大利 顺便提一下&#xff0c;老苏的博客启用了新域名&#xff1a; https://laosu.tech 什么是 RustScan &#xff1f; RustScan 是一款现代化的端口扫描器。能快速找到端…

AutoGen实战应用(三):多代理协作的数据可视化

之前我完成了关于AutoGen的两篇博客&#xff0c;还没有读过这两篇博客的朋友可以先阅读以下&#xff0c;这样有助于对AutoGen的初步了解&#xff1a; AutoGen实战应用(一)&#xff1a;代码生成、执行和调试_autogen 支持的model-CSDN博客 AutoGen实战应用(二)&#xff1a;多代…

什么是系统工程(字幕)26

0 00:00:00,000 --> 00:00:02,490 那么下一个图就是 1 00:00:02,780 --> 00:00:05,530 图16.13这个图了 2 00:00:06,350 --> 00:00:08,120 那么这个图的话 3 00:00:09,370 --> 00:00:11,400 它是派生了一个 4 00:00:12,940 --> 00:00:15,450 排空残渣的需求…

Vue3.0(六):VueX 4.x详解

Vuex4状态管理 什么是状态管理 在开发中&#xff0c;我们的应用程序需要处理各种各样的数据&#xff0c;这些数据需要保存在应用程序的某一个位置&#xff0c;对于这些数据的管理&#xff0c;就是 状态管理目前前端项目越来越复杂&#xff0c;多组件共享同一数据的状态很常见…

【排序】归并排序

归并排序 动图演示&#xff1a; 基本思想&#xff1a;分治思想 归并排序&#xff08;MERGE-SORT&#xff09;是建立在归并操作上的一种有效的排序算法,该算法是采用分治法的一个非常典型的应用。将已有序的子序列合并&#xff0c;得到完全有序的序列&#xff1b;即先使每个子…

小白学Halcon100例:如何应用极坐标的展开及逆变换?

这里写目录标题 什么是极坐标系?在halcon中对应的算子halcon实例程序输出结果:原图什么是极坐标系? 1、极坐标系(polar coordinates)是指在平面内由极点、极轴和极径组成的坐标系。在平面上取定一点O,称为极点。从O出发引一条射线Ox,称为极轴。再取定一个单位长度,通常…

“操作符大揭秘:一篇文章让你秒懂所有!”

目录 1. ⼆进制介绍 2. 原码、反码、补码 3. 移位操作符 4. 位操作符&#xff1a;&、|、^ 5. 逗号表达式 6. 下标访问[]、函数调⽤() 7. 操作符的属性&#xff1a;优先级、结合性 8. 整型提升 9. 算术转换 10. 表达式求值 正文开始&#xff1a; 1. ⼆进制 其实我…

linux系统zabbix监控自定义监控

自定义监控 格式无数据传递自定义键值有数据传递自定义键值 例如监控程序的状态监控php-fpm状态监控mysql主从状态获取主从状态脚本编写自定义监控文件服务端访问 监控nginx状态nginx设置监控页面编写自定义监控文件服务端访问 用户自定义监控也就是自定义键值&#xff0c;系统…

B2086 不定方程求解(VIP)

题目描述 给定正整数 a&#xff0c;b&#xff0c;c。求不定方程 axbyc 关于未知数 x 和 y 的所有非负整数解组数。 输入格式 一行&#xff0c;包含三个正整数 a&#xff0c;b&#xff0c;c&#xff0c;两个整数之间用单个空格隔开。每个数均不于 1000。 输出格式 一个整数…

Mysql的安装、使用、优势与教程

一.安装 1.在小皮的设置界面检测3306端口&#xff0c;保障3306端口可用&#xff1b; 2、在小皮的首面界面&#xff0c;启动MySQL&#xff1b; 3、进行环境变量设置&#xff0c;找到MySQL的路径&#xff0c;进行复制&#xff1b; 4、在Windows的搜索栏内&#xff0c;输入“环境…

如何理解UE中的TSubclassOf

在UE中&#xff0c;TSubclassOf 是一个模板类&#xff0c;用于存储对某个特定类的引用&#xff0c;通常用于指定类的子类。理解 TSubclassOf 有助于更好地掌握UE中的类系统和蓝图系统。 1. 类型定义 template <typename T> class TSubclassOf; 2. 用途 TSubclassOf 主…

C++ //练习 6.39 说明在下面的每组声明中第二条声明语句是何含义。如果有非法的声明,请指出来。

C Primer&#xff08;第5版&#xff09; 练习 6.39 练习 6.39 说明在下面的每组声明中第二条声明语句是何含义。如果有非法的声明&#xff0c;请指出来。 (a) int calc(int, int);int calc(const int, const int); (b) int get();double get(); (c) int *reset(int *);double…

十、java 接口

文章目录 接口1.1 接口的概念1.2 接口定义1.3 实现接口1.4 使用接口1.5 接口的细节1.6 Java 8 和Java 9 对接口的增强 接口 本文为书籍《Java编程的逻辑》1和《剑指Java&#xff1a;核心原理与应用实践》2阅读笔记 很多时候&#xff0c;我们将对象看作属于某种数据类型&#…