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

【算法刷题day23】Leetcode:669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树

文章目录

    • Leetcode 669. 修剪二叉搜索树
      • 解题思路
      • 代码
      • 总结
    • Leetcode 108. 将有序数组转换为二叉搜索树
      • 解题思路
      • 代码
      • 总结
    • Leetcode 538. 把二叉搜索树转换为累加树
      • 解题思路
      • 代码
      • 总结

草稿图网站
java的Deque

Leetcode 669. 修剪二叉搜索树

题目:669. 修剪二叉搜索树
解析:代码随想录解析

解题思路

对于不符合的节点,如果该节点小于区间,则右孩子可能符合;如果该节点大于区间,则左孩子可能符合。

代码

/*** 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) {if (root == null)return root;if (root.val < low) {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;}
}//迭代法
class Solution {public TreeNode trimBST(TreeNode root, int low, int high) {if (root == null)return root;while (root != null && (root.val < low || root.val > high)) {if (root.val < low)root = root.right;elseroot = root.left;}TreeNode cur = root;while (cur != null) {while (cur.left != null && cur.left.val < low)cur.left = cur.left.right;cur = cur.left;}cur = root;while (cur != null) {while (cur.right != null && cur.right.val > high)cur.right = cur.right.left;cur = cur.right;}return root;}
}

总结

暂无

Leetcode 108. 将有序数组转换为二叉搜索树

题目:108. 将有序数组转换为二叉搜索树
解析:代码随想录解析

解题思路

递归+数组

代码

/*** 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 sortedArrayToBST(int[] nums) {if (nums == null || nums.length == 0)return null;return buildTree(nums, 0, nums.length);}private TreeNode buildTree(int[] nums, int left, int right) {if (left == right)return null;if (left + 1 == right)return new TreeNode(nums[left]);int mid = left + (right - left) / 2;TreeNode midNode = new TreeNode(nums[mid]);midNode.left = buildTree(nums, left, mid);midNode.right = buildTree(nums, mid + 1, right);return midNode;}
}

总结

迭代懒得写了

Leetcode 538. 把二叉搜索树转换为累加树

题目:538. 把二叉搜索树转换为累加树
解析:代码随想录解析

解题思路

反过来的中序

代码

/*** 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 {int sum = 0;public TreeNode convertBST(TreeNode root) {if (root == null)return null;order(root);return root;}private void order(TreeNode node) {if (node == null)return;order(node.right);sum += node.val;node.val = sum;order(node.left);}
}

总结

递归懒得写

http://www.lryc.cn/news/336193.html

相关文章:

  • 设计一个会议管理系统100问?
  • 一文搞懂BI、ERP、MES、SCM、PLM、CRM、WMS、APS、SCADA、QMS
  • 全量知识系统 程序详细设计 之 先验逻辑-实现:从“平凡”回到“平凡” (QA 百度搜索)
  • 注解(Annotation) --java学习笔记
  • uniapp 小程序获取WiFi列表
  • 数据可视化-ECharts Html项目实战(11)
  • 【MySQL数据库 | 第二十四篇】Limit语句的性能问题和调优策略
  • 【数据结构】两两交换链表 复制带随机指针的链表
  • 网络安全流量平台_优缺点分析
  • 【c语言】自定义类型:结构体详解
  • 利用AbortController,取消正在发送的请求
  • dockerhub右键快速搜索脚本
  • 类似微信的以文搜图功能实现
  • Android 13.0 Launcher3定制化之最近任务的全部清除由左边移到下边显示
  • 成都数字产业园落地全生命周期服务方案, 让企业对成都发展更有信心
  • SpringBoot实现RabbitMQ的通配符交换机(SpringAMQP 实现Topic交换机)
  • opencv图像处理技术(形态学操作)
  • 如何构建数据指标体系
  • python统计分析——一般线性回归模型
  • 【cocos creator】【TS】贝塞尔曲线,地图之间显示曲线
  • COMFYUI换脸ReActor报错Value not in list: face_restore_model: ‘codeformer.pth‘解决
  • 深入理解Java中的字段与属性的区别
  • 【Locust分布式压力测试】
  • 富格林:出金异常警惕黑幕陷阱受骗
  • Docker - Nginx
  • 免费搭建幻兽帕鲁服务器(Palworld免费开服教程)
  • 作业习题
  • 解决unbuntu更新到23.10 mantic firefox无法使用的问题
  • idea常用配置——注释快捷键
  • Hidl 学习总结 2