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

【代码随想录day 20】 力扣 669. 修剪二叉搜索树

视频讲解:https://www.bilibili.com/video/BV17P41177ud/?share_source=copy_web&vd_source=a935eaede74a204ec74fd041b917810c
文档讲解:https://programmercarl.com/0669.%E4%BF%AE%E5%89%AA%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91.html#%E6%80%9D%E8%B7%AF
力扣题目:https://leetcode.cn/problems/trim-a-binary-search-tree/
主要思路:

  1. 遍历二叉树判断节点
  2. 如果节点的值小于区间,则左子树会更小,因此左子树全部删除,但不能直接连接右子树节点,因为右子树可能存在范围之外的节点,因此需要进入右子树继续遍历
  3. 如果节点值大于区间,右子树会更大,因此进入左子树遍历
  4. 单次递归返回情况,如果空节点则想上一层返回空节点。如果节点小于返回右节点。如果大于返回左节点。最后返回root根节点
class Solution {
public:TreeNode* trimBST(TreeNode* root, int low, int high) {//判断终止条件if(root == NULL) return NULL;//如果节点值小于区间if(root->val < low) {//左子树全部删除,继续遍历右子树TreeNode *right = trimBST(root->right, low, high);return right;}//如果节点值大于区间if(root->val > 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;}
};
http://www.lryc.cn/news/620577.html

相关文章:

  • 力扣-64.最小路径和
  • 玩转Docker | 使用Docker部署JSON格式化工具ZJSON
  • iOS Sqlite3
  • 磁盘瓶颈现形记 - iostat让I/O压力无所遁形
  • 「iOS」————设计架构
  • iOS 26 一键登录失效:三大运营商 SDK 无法正常获取手机号
  • iOS性能监控新方法多版本对比与趋势分析实战指南
  • iOS混淆工具有哪些?游戏 App 防护下的混淆与加固全攻略
  • 网络通信---Axios
  • iOS App TestFlight 上架全流程案例,从 0 到 1 完成内测分发
  • Docker 部署:Web SSH、RDP、VNC 多协议全能远程管理工具
  • 零基础数据结构与算法——第七章:算法实践与工程应用-搜索引擎
  • 洗浴中心泡池水过滤系统原理深度解析与工程实践
  • 数智先锋 | 告别运维黑盒!豪鹏科技×Bonree ONE构建全栈智能可观测体系
  • 【网络】TCP/UDP总结复盘
  • Ollama如何分别使用2张H100GPU和4张A100部署GPT-OSS-120B全指南:硬件配置与负载均衡实战
  • PostgreSQL——触发器
  • Nginx学习笔记(八)—— Nginx缓存集成
  • GraphRAG查询(Query)流程实现原理分析
  • Unity人形角色IK优化指南
  • C++-setmap详解
  • 图灵测试:人工智能的“行为主义判据”与哲学争议
  • Elastic 获得 2025 年 Google Cloud DORA “以 AI 构建未来架构” 奖
  • 认知系统的架构: 认知残余三角形、认知主体意识 和认知演进金字塔(腾讯元宝)
  • Vue Vant应用-数据懒加载
  • Linux入门指南:基础开发工具---yum/apt
  • 分享一个基于Hadoop+spark的超市销售数据分析与可视化系统,超市顾客消费行为分析系统的设计与实现
  • 2025年大模型安全岗的面试汇总(题目+回答)
  • 使用Applications Manager进行 Apache Solr 监控
  • LeetCode 37.解数独:回溯法在二维网格中的应用与剪枝策略