一:题目

二:上码

/*** Definition for a binary tree node.* struct TreeNode {*     int val;*     TreeNode *left;*     TreeNode *right;*     TreeNode() : val(0), left(nullptr), right(nullptr) {}*     TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}*     TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left), right(right) {}* };*/
class Solution {public:/**思路:1.注意这是二叉搜索树,所以当root的左子树根节点不满足条件的时候,需要遍历左子树的右子树并将其返回到root的左子树上面,root的右子树根节点不满足条件的时候,我们需要将递归右子树的左子树,并将其返回到root的左子树上面2.递归三部曲:1>:确定递归函数的参数和返回值(这里返回值 我们用一个指针接住,是因为我们需要遍历整颗二叉树,而且我们删除的结点其可能还要返回其左子树/右子树  给root)TreeNode* trimBST(TreeNode* root, int low, int high) 2>:确定递归函数的终止条件if(root == NULL) return NULL;3>:确定递归函数的递归体if(root->val < low) {//root的左子树TreeNode* right =  trimBST(root->right,low,high);return right;//可能满足范围的左子树的结点(将其返回给上一层root->left)}if(root->val > hight){//同理TreeNode* left =  trimBST(root->left,low,high);return left;}root->left =  trimBST(root->left,low,high);//接住下一层返回的结点root->right =  trimBST(root->right,low,high)//接住*/TreeNode* trimBST(TreeNode* root, int low, int high) {if(root == NULL) return NULL;if(root->val < low) {//root的左子树TreeNode* right =  trimBST(root->right,low,high);return right;//可能满足范围的左子树的结点(将其返回给上一层root->left)}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;}
};

leetcode669. 修剪二叉搜索树相关推荐

  1. LeetCode 669. 修剪二叉搜索树(Trim a Binary Search Tree)

    669. 修剪二叉搜索树 669. Trim a Binary Search Tree 题目描述 LeetCode LeetCode669. Trim a Binary Search Tree简单 J ...

  2. 68. Leetcode 669. 修剪二叉搜索树 (二叉搜索树-基本操作类)

    给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high.通过修剪二叉搜索树,使得所有节点的值在[low, high]中.修剪树 不应该 改变保留在树中的元素的相对结构 (即, ...

  3. LeetCode 669. Trim a Binary Search Tree修剪二叉搜索树 (C++)

    题目: Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so th ...

  4. 【数据结构与算法】之深入解析“修剪二叉搜索树”的求解思路与算法示例

    一.题目要求 给你二叉搜索树的根节点 root,同时给定最小边界 low 和最大边界 high,通过修剪二叉搜索树,使得所有节点的值在 [low, high] 中. 修剪树不应该改变保留在树中的元素的 ...

  5. LeetCode 669. 修剪二叉搜索树

    1. 题目 给定一个二叉搜索树,同时给定最小边界L 和最大边界 R.通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) .你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜 ...

  6. 消除左递归实验代码_「leetcode」669. 修剪二叉搜索树:【递归】【迭代】详解!

    单纯移除一个节点那还不够,要修剪! ❞ 669. 修剪二叉搜索树 题目链接:https://leetcode-cn.com/problems/trim-a-binary-search-tree/ 给定 ...

  7. ★LeetCode(669)——修剪二叉搜索树(JavaScript)

    给定一个二叉搜索树,同时给定最小边界L 和最大边界 R.通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) .你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根 ...

  8. Suzy找到实习了吗 Day23 | 二叉树最后一节!669. 修剪二叉搜索树,108. 将有序数组转换为二叉搜索树,538. 把二叉搜索树转换为累加树

    669. 修剪二叉搜索树 题目 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high.通过修剪二叉搜索树,使得所有节点的值在[low, high]中.修剪树 不应该 改变保 ...

  9. 669. 修剪二叉搜索树

    给定一个二叉搜索树,同时给定最小边界L 和最大边界 R.通过修剪二叉搜索树,使得所有节点的值在[L, R]中 (R>=L) .你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根 ...

最新文章

  1. Ejabberd源码解析前奏--配置
  2. 结对开发4----最大子数组(大数溢出)
  3. java 数据库提交,java.sql.Statement向数据库提交的语句不可以是SQL语句的()。
  4. 构造函数不能为虚函数
  5. 利用自己构建的网络进行鼾声识别
  6. 人生路上对我影响最大的三位老师浅谈师生关系
  7. 图像处理——matlab人脸识别(1)
  8. 配置管理基本概念、配置管理计划、配置管理主要活动
  9. 一个医院为何要架设数字网络时钟系统(电子时钟系统)
  10. 安装 truffle (CentOS7 与 Windows)
  11. Mediakit报告设备商的空间不足以执行此操作的纯MAC解法
  12. 文档在线打印,保持样式不变解决方法
  13. 视频剪辑,就上这5个网站找素材,免费可商用。
  14. Blender建模笔记 | 大帅老猿threejs特训
  15. MySQL安装一直卡在starting server
  16. 4 数据分析-案例:亚洲国家人口数据计算
  17. 手风琴效果——原生JS
  18. 特征选择 GBDT 特征重要度
  19. Converged Multimedia Networks
  20. html中单引号与双引号区别,JS 和 HTML 中的单引号与双引号

热门文章

  1. SQL注入(SQL Injection)
  2. matlab 边缘检测不闭合,Matlab多种图像边缘检测方法
  3. 自定义地图怎么做成html,自定义html为谷歌地图制作标记
  4. ArcGIS Engine开发模板及C#代码
  5. UI之常用通过颜色值和透明度怎么得到最后的颜色值
  6. 在n个火柴里面拿3根出来拼接成最大三角形的周长
  7. python图形绘制库turtle中文开发文档及示例大全【最详细、连结果图都有,gif格式的!】
  8. server如何调用 thrift_Thrift总结(二)如何快速创建自己的RPC服务
  9. CCF-CSP认证201312-1(出现次数最多的数)
  10. 腾讯云cloudlite认证_【腾讯云】考个证...大数据开发工程师认证