代码随想录算法训练营DAY21 | 二叉树 (9)

一、LeetCode 669 修建二叉搜索树

题目链接:669.修建二叉搜索树icon-default.png?t=N7T8https://leetcode.cn/problems/trim-a-binary-search-tree/description/

思路:递归三部曲-定参数、返回值-定终止条件-定单层递归逻辑

class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if(root == null){return root;}if(root.val < low){//剪枝操作,root的左子树肯定都在区间之外,所以直接返回root的右子树return trimBST(root.right,low,high);}if(root.val > high){return trimBST(root.left,low,high);}//递归处理root.left = trimBST(root.left,low,high);root.right = trimBST(root.right,low,high);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

 二、LeetCode 108 将有序数组转换为二叉搜索树

题目链接:108.将有序数组转换为二叉搜索树icon-default.png?t=N7T8https://leetcode.cn/problems/convert-sorted-array-to-binary-search-tree/description/

思路:分割数组 左闭右闭 递归造树

class Solution {public TreeNode sortedArrayToBST(int[] nums) {int n = nums.length;int left = 0;int right = n-1;return travel(nums,0,n-1);}public TreeNode travel(int[] nums, int left, int right){if(left > right){return null;}int index = left + (right-left)/2;TreeNode root = new TreeNode(nums[index]);//左闭右闭,中间节点已入树root.left = travel(nums, left, index-1);root.right = travel(nums, index+1, right);return root;}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

三、LeetCode 538 把二叉搜索树转换为累加树

题目链接:538.把二叉搜索树转换为累加树icon-default.png?t=N7T8https://leetcode.cn/problems/convert-bst-to-greater-tree/

思路:二叉搜索树的中序遍历结果是顺序数组->反中序遍历然后顺序累加可得结果

 

class Solution {//记录前一个节点的值int pre = 0;public TreeNode convertBST(TreeNode root) {travel(root);return root;}public void travel(TreeNode root){//按右中左遍历if(root == null){return;}travel(root.right);//累加求和 保存累加值pre += root.val;root.val = pre;travel(root.left);}
}
/*** Definition for a binary tree node.* public class TreeNode {*     int val;*     TreeNode left;*     TreeNode right;*     TreeNode() {}*     TreeNode(int val) { this.val = val; }*     TreeNode(int val, TreeNode left, TreeNode right) {*         this.val = val;*         this.left = left;*         this.right = right;*     }* }*/

四、小结

        恨残照,犹有一竿红、怪人催去早 \*AVA*/  $^*^$

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

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

相关文章

Sora了解资料

一、基本介绍 1.1sora 在 2024 年 2 月 16 日&#xff0c;Open AI 宣布推出全新的生成式人工智能模型“Sora”。据了解&#xff0c;通过文本指令&#xff0c;Sora 可以直接输出长达 60 秒的视频&#xff0c;并且包含高度细致的背景、复杂的多角度镜头&#xff0c;以及富有情感…

Prometheus+TDengine集群实现监控体系高可用

背景 为避免再次出现因Prometheus宕机导致业务无法查看历史数据受到影响&#xff0c;准备将Prometheus架构从单节点方式升级为高可用集群方式并将后端存储由本地存储改为远端分布式时序数据库存储。分布式时序数据库采用国产数据库TDengine。 架构 解释&#xff1a;虚线代表P…

Tuxera NTFS软件2024免费版本如何下载?

当然&#xff0c;以下是关于Tuxera NTFS的更多信息&#xff1a; Tuxera NTFS2024下载如下:https://wm.makeding.com/iclk/?zoneid58824 1. 易于使用和管理&#xff1a; Tuxera NTFS的界面设计简洁直观&#xff0c;用户无需复杂的设置和配置即可轻松上手。无论是对于普通用户…

机器视觉【3】非线性求解相机几何参数

线性求解相机几何参数的缺点 上一章节介绍学习了&#xff08;DLT&#xff09;线性求解相机几何参数&#xff0c;了解到线性求解法当中比较明显的缺点&#xff1a; 没有考虑到镜头畸变的影响不能引入更多的约束条件融入到DLT算法当中优化最关键的是&#xff0c;代数距离并不是…

Sora给中国AI带来的真实变化

OpenAI的最新技术成果——文生视频模型Sora&#xff0c;在春节假期炸裂登场&#xff0c;令海内外的AI从业者、投资人彻夜难眠。 如果你还没有关注到这个新闻&#xff0c;简单介绍一下&#xff1a;Sora是OpenAI使用超大规模视频数据&#xff0c;训练出的一个通用视觉模型&#x…

源 MySQL 5.7 Community Server 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。

源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装&#xff0c;但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。 问题描述&#xff1a; 服务器上安装mysql时 或 执行更新mysql 安装包的时候&#xff0c;出现了报错&#xff0c;简单记录下解决方案 执行…

ClickHouse快速上手

简介 ClickHouse是一个用于联机分析(OLAP)的列式数据库管理系统(DBMS) 官网(https://clickhouse.com/docs/zh)给出的定义&#xff0c;其实没看懂 特性 ClickHouse支持一种基于SQL的声明式查询语言&#xff0c;它在许多情况下与ANSI SQL标准相同。使用时和MySQL有点相似&#…

JAVA设计模式结构型模式

一、前言 java设计模式主要分为创建型模式&#xff0c;结构型模式和行为型模式。上一篇主要总结了行为型设计模式&#xff0c;本章总结&#xff0c;结构型模式。像创建型模式就不写了&#xff0c;比较简单。大概知道是工厂模式和建造者模式&#xff0c;原型模式就行&#xff0…

CTFHub技能树web之RCE(二)

第五题&#xff1a;远程包含 根据题目&#xff0c;使用远程包含进行 打开phpinfo&#xff0c;可以看到allow_url_fopen和allow_url_include都是On&#xff0c;因此可以使用php://input&#xff0c;由于代码会检查file中的内容&#xff0c;因此不能够使用php://filter包含文件&a…

Unreadable-Mesh内存占用翻倍问题

1&#xff09;Unreadable-Mesh内存占用翻倍问题 2&#xff09;在TMP中计算书名号《》高度的问题 3&#xff09;Mipmap如何限定层级 4&#xff09;FMOD设置中关于Virtual Channel Count&Real Channel Count的参数疑问 这是第374篇UWA技术知识分享的推送&#xff0c;精选了UW…

Code Composer Studio (CCS) - Simulators (模拟器)

Code Composer Studio [CCS] - Simulators [模拟器] 1. simulators2. root directoryReferences 1. simulators CCSv6 does NOT have any simulators. Texas Instruments is moving away from providing simulators and instead is focusing on providing low cost developmen…

STM32使用软件SPI协议操作TFT18彩屏

时间记录&#xff1a;2024/2/20 一、SPI协议介绍 &#xff08;1&#xff09;SPI设备通过4根线进行通信&#xff0c;CS片选线&#xff0c;选择从设备&#xff0c;SCK时钟线&#xff0c;由主设备产生时钟&#xff0c;主机MOSI线连从机MISO线&#xff0c;由主机向从机发送信息&am…

淘宝商品采集API通过商品id获取商品详情信息

item_get-获得淘宝商品详情 item_get_app-获得淘宝app商品详情原数据 item_get_pro-获得淘宝商品详情高级版 item_search-按关键字搜索淘宝商品 公共参数 名称类型必须描述keyString是调用key&#xff08;必须以GET方式拼接在URL中&#xff09;secretString是调用密钥api_…

R语言如何对excel数据进行操作

在R语言中&#xff0c;可以使用readxl包来读取和操作Excel数据。首先&#xff0c;需要安装readxl包&#xff0c;可以使用以下命令安装&#xff1a; install.packages("readxl") 安装完成后&#xff0c;加载readxl包&#xff1a; library(readxl) 读取Excel文件&a…

配置基于 AWS CRT 的 HTTP 客户端

基于 AWS CRT 的 HTTP 客户端包括同步 AwsCrtHttpClient 和异步 AwsCrtAsyncHttpClient。基于 AWS CRT 的 HTTP 客户端具有以下 HTTP 客户端优势&#xff1a; 更快的 SDK 启动时间 更小的内存占用空间 降低的延迟时间 连接运行状况管理 DNS 负载均衡 SDK 中基于 AWS CRT …

【MySQL】事务的一致性究竟怎么理解?

众所周知&#xff0c;事务有四大特性&#xff1a;原子性、一致性、隔离性、持久性&#xff0c;除了一致性&#xff0c;其他三类特性都很好理解。而关于一致性的解释有点让人头疼&#xff0c;我查了很多文章&#xff0c;大多类似&#xff1a;事务的执行必须使数据库处于一致状态…

CMake与vs的配置对应(常规->附加包含目录,链接器->输入)

常规->附加包含目录 对应CMake的 include_directories(${QT_PATH}/include) 写在 add_executable 前面 链接器->输入 对应CMake的 target_link_libraries(${PROJECT_NAME} xx.lib) 写在 add_executable 后面

微服务—DSL基础语法与RestClient操作

本博客为个人学习笔记&#xff0c;学习网站&#xff1a;黑马程序员SpringCloud 2021教程 目录 DSL语法 索引库操作 mapping属性 创建索引库 字段拷贝 查询、删除、修改索引库 文档操作 新增文档 查询、删除文档 修改文档 全量修改 增量修改 DSL文档语法小结 Rest…

Gin框架: 通用方法的封装与上传功能的应用

通用方法模块的设计 通用的方法可以定义在一个模块里&#xff0c;以方便调用&#xff0c;无需重复造轮子一般可以设计一个顶层的 models 包来承载公共方法 models 包 package modelsimport ("crypto/md5""encoding/hex""math/rand""time&…

通过 GithubActions 实现自动化部署 Hexo

一、在自己电脑上新建一个文件夹&#xff0c;打开 git bash here,输入以下命令 # 生成秘钥 ssh-keygen -f github-deploy-key之后会生成两个文件&#xff0c; 一个私钥文件为&#xff1a;github-deploy-key&#xff1b; 另一个公钥文件为&#xff1a;github-deploy-key.pub …