当前位置: 首页 > news >正文

代码随想录——修建二叉搜素树(Leetcode669)

题目链接
在这里插入图片描述

递归

/*** 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;*     }* }*/
class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {// 检查传入的 root 是否为 null。如果是,则说明树为空,直接返回 null。if(root == null){return null;}// 如果 root 的值小于范围下限 low,那么这个节点以及它的左子树中的所有节点都不在范围内。// 因此,递归地对右子树进行修剪(即删除小于 low 的节点),并返回修剪后的右子树的根节点。if(root.val < low){TreeNode right = trimBST(root.right, low, high);return right;}// 如果 root 的值大于范围上限 high,那么这个节点以及它的右子树中的所有节点都不在范围内。// 因此,递归地对左子树进行修剪(即删除大于 high 的节点),并返回修剪后的左子树的根节点。if(root.val > high){TreeNode left = trimBST(root.left, low, high);return left;}// 递归地对 root 的左右子节点进行修剪。即使 root 的值在范围内,它的子节点可能不在范围内,所以需要分别对左右子节点进行相同的修剪过程。root.left = trimBST(root.left, low, high);root.right = trimBST(root.right, low, high);// 最后,在完成所有必要的修剪后,返回 root 节点。return root;}
}

相关文章:

  • UI 自动化分布式测试 -Docker Selenium Grid
  • SpringEvent事件发布订阅Demo
  • 【开源】课程智能组卷系统 SSM+JSP+MySQL
  • 深度学习各算法的优缺点和适用场景!!纯干货,建议收藏。(下篇)
  • Fetch API
  • 网络基础_02
  • Flutter 中的 CupertinoUserInterfaceLevel 小部件:全面指南
  • SQL查询的优化方案
  • Android 高德地图API(新版)
  • Einstein Summation 爱因斯坦求和 torch.einsum
  • 重学java 63.IO流 字节流 ④ 文件复制
  • dibbler-DHCPv6 的开源框架(C++ 实现)1
  • 【微信小程序开发】小程序中的上滑加载更多,下拉刷新是如何实现的?
  • 最新的ffmepg.js前端VUE3实现视频、音频裁剪上传功能
  • FileZilla:不安全的服务器,不支持 FTP over TLS 原因与解决方法
  • 分享的文章《人生如棋》
  • gitlab-ci配置详解(一)
  • interface和setter,getter
  • mysql中InnoDB引擎中页的概念
  • nodejs实现webservice问题总结
  • oschina
  • PHP 的 SAPI 是个什么东西
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Quartz初级教程
  • React Native移动开发实战-3-实现页面间的数据传递
  • Redis 懒删除(lazy free)简史
  • SpringBoot几种定时任务的实现方式
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • TCP拥塞控制
  • webgl (原生)基础入门指南【一】
  • 短视频宝贝=慢?阿里巴巴工程师这样秒开短视频
  • 关于for循环的简单归纳
  • 聊聊flink的TableFactory
  • 使用 Node.js 的 nodemailer 模块发送邮件(支持 QQ、163 等、支持附件)
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • Nginx实现动静分离
  • python最赚钱的4个方向,你最心动的是哪个?
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • 整理一些计算机基础知识!
  • ​什么是bug?bug的源头在哪里?
  • ​中南建设2022年半年报“韧”字当头,经营性现金流持续为正​
  • # 利刃出鞘_Tomcat 核心原理解析(二)
  • # 睡眠3秒_床上这样睡觉的人,睡眠质量多半不好
  • #预处理和函数的对比以及条件编译
  • $jQuery 重写Alert样式方法
  • (04)Hive的相关概念——order by 、sort by、distribute by 、cluster by
  • (3)llvm ir转换过程
  • (webRTC、RecordRTC):navigator.mediaDevices undefined
  • (附源码)php新闻发布平台 毕业设计 141646
  • (附源码)python房屋租赁管理系统 毕业设计 745613
  • (附源码)小程序 交通违法举报系统 毕业设计 242045
  • (汇总)os模块以及shutil模块对文件的操作
  • (详细版)Vary: Scaling up the Vision Vocabulary for Large Vision-Language Models
  • (一)Kafka 安全之使用 SASL 进行身份验证 —— JAAS 配置、SASL 配置