刷题记录|Day23● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

Win10家庭版如何添加本地用户和组 在众多Windows版本中,Windows 10以其丰富的功能和卓越的性能吸引了大量用户。然而,对于使用Win10家庭版的用户来说,他们可能会遇到一些功能上的限制,特别是在用户和组管理方面。虽然家庭版在某些高级功能上有所缩减,但我们仍然可以通过一些技巧来实现对本地用户和组的管理。本文将详细介绍如何在Win10家庭版中添加本地用户和组,以便用户能够更好地管理计算机资源。 阅读详情

● 203.移除链表元素

题目描述

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。 可以证明,存在 唯一的答案 。

所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。

示例 1:

输入:root = [1,0,2], low = 1, high = 2
输出:[1,null,2]

示例 2:

输入:root = [3,0,4,null,2,null,null,1], low = 1, high = 3
输出:[3,2,null,1]

提示:

  • 树中节点数在范围 [1, 10<sup>4</sup>] 内
  • 0 <= Node.val <= 10<sup>4</sup>
  • 树中每个节点的值都是 唯一 的
  • 题目数据保证输入是一棵有效的二叉搜索树
  • 0 <= low <= high <= 10<sup>4</sup>

解题思路

迭代法

返回值和函数参数
TreeNode* trimBST(TreeNode* root, int low, int high)
终止条件
if(root == nullptr) return nullptr;
单次循环的逻辑
if(root->val < low)
            return trimBST(root->right,low,high);
        else if( root->val > high)
        {
            return trimBST(root->left,low,high);
        }

        root->right = trimBST(root->right,low,high);
        root->left = trimBST(root->left,low,high);
        return root;
代码整合
正确版本
/**
 * 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:
    TreeNode* trimBST(TreeNode* root, int low, int high) {
        if(root == nullptr)
            return nullptr;
        if(root->val < low)
            return trimBST(root->right,low,high);
        else if( root->val > high)
        {
            return trimBST(root->left,low,high);
        }

        root->right = trimBST(root->right,low,high);
        root->left = trimBST(root->left,low,high);
        return root;
    }
};
错误版本,考虑的太多了 删除多余节点的空间 有bug
/**
 * 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:
    TreeNode* trimBST(TreeNode* root, int low, int high) {

        if(root == nullptr) return nullptr;

        if(root->val< low && root->right)
        {
            if(root->right&& root->right->val>= low)
            {
                TreeNode * node = root->right;
                delete root;
                return node;
            }
            else 
            {
                delete root;
                return nullptr;
            }
        }

        else if(root->val>high && root->left)
        {
            if(root->left&&root->left->val <= high)
            {
                auto node = root->left;
                delete root;
                return node;
            }
            else 
            {
                delete root;
                return nullptr;
            }
        }
        else if( (root->val <low|| root->val> high)&& root->left == nullptr && root->right == nullptr )
        {
            delete root ;
            return nullptr;
        }
        if(root->val>=low && root->val<= high)
        {
         root->left = trimBST(root->left,low,high);
         root->right = trimBST(root->right,low,high);        
            return root;
        }
        else 
        {
            return trimBST(root,low,high);
        }

 

    }
};

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

题目描述

给你一个整数数组 nums ,其中元素已经按 升序 排列,请你将其转换为一棵 高度平衡 二叉搜索树。

高度平衡 二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过 1 」的二叉树。

示例 1:

输入:nums = [-10,-3,0,5,9]
输出:[0,-3,9,-10,null,5]
解释:[0,-10,5,null,-3,null,9] 也将被视为正确答案:


示例 2:

输入:nums = [1,3]
输出:[3,1]
解释:[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

提示:

  • 1 <= nums.length <= 10<sup>4</sup>
  • -10<sup>4</sup> <= nums[i] <= 10<sup>4</sup>
  • nums 按 严格递增 顺序排列

解题思路

/**
 * 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:
    TreeNode* sortedArrayToBST(vector<int>& nums) {
        if(nums.size() == 0 ) return nullptr;

        int mid = nums.size()/2;
        int midval = nums[mid];

        TreeNode * root = new TreeNode(midval);
        if(nums.size()==1)return root;



        // 分割数组 left
        vector<int> left(nums.begin(),nums.begin()+mid);
        // 分割数组 right
        vector<int> right(nums.begin()+mid+1,nums.end());


        root->left = sortedArrayToBST(left);
        root->right = sortedArrayToBST(right);
        return root;

    }
};

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

题目描述

给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。

提醒一下,二叉搜索树满足下列约束条件:

  • 节点的左子树仅包含键 小于 节点键的节点。
  • 节点的右子树仅包含键 大于 节点键的节点。
  • 左右子树也必须是二叉搜索树。

**注意:**本题和 1038: https://leetcode-cn.com/problems/binary-search-tree-to-greater-sum-tree/ 相同

示例 1:

输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]
输出:[30,36,21,36,35,26,15,null,null,null,33,null,null,null,8]

示例 2:

输入:root = [0,null,1]
输出:[1,null,1]

示例 3:

输入:root = [1,0,2]
输出:[3,3,2]

示例 4:

输入:root = [3,2,4,1]
输出:[7,9,4,10]

提示:

  • 树中的节点数介于 0 和 10<sup>4</sup> 之间。
  • 每个节点的值介于 -10<sup>4</sup> 和 10<sup>4</sup> 之间。
  • 树中的所有值 互不相同 。
  • 给定的树为二叉搜索树。

解题思路

一看到累加树,相信很多小伙伴都会疑惑:如何累加?遇到一个节点,然后再遍历其他节点累加?怎么一想这么麻烦呢。

然后再发现这是一棵二叉搜索树,二叉搜索树啊,这是有序的啊。

那么有序的元素如何求累加呢?

其实这就是一棵树,大家可能看起来有点别扭,换一个角度来看,这就是一个有序数组[2, 5, 13],求从后到前的累加数组,也就是[20, 18, 13],是不是感觉这就简单了。

为什么变成数组就是感觉简单了呢?

因为数组大家都知道怎么遍历啊,从后向前,挨个累加就完事了,这换成了二叉搜索树,看起来就别扭了一些是不是。

那么知道如何遍历这个二叉树,也就迎刃而解了,从树中可以看出累加的顺序是右中左,所以我们需要反中序遍历这个二叉树,然后顺序累加就可以了。

本题依然需要一个pre指针记录当前遍历节点cur的前一个节点,这样才方便做累加。
​
pre指针的使用技巧,
​

  • 递归函数参数以及返回值
    ​
    这里很明确了,不需要递归函数的返回值做什么操作了,要遍历整棵树。
    ​
    同时需要定义一个全局变量pre,用来保存cur节点的前一个节点的数值,定义为int型就可以了。
    ​
    代码如下:
    ​
int pre = 0; // 记录前一个节点的数值
void traversal(TreeNode* cur)

​

​

  • 确定终止条件
    ​
    遇空就终止。
    ​
if (cur == NULL) return;

​

  • 确定单层递归的逻辑
    ​
    注意要右中左来遍历二叉树, 中节点的处理逻辑就是让cur的数值加上前一个节点的数值。
    ​
    代码如下:
    ​
traversal(cur->right);  // 右
cur->val += pre;        // 中
pre = cur->val;
traversal(cur->left);   // 左
class Solution {
private:
    int pre = 0; // 记录前一个节点的数值
    void traversal(TreeNode* cur) { // 右中左遍历
        if (cur == NULL) return;
        traversal(cur->right);
        cur->val += pre;
        pre = cur->val;
        traversal(cur->left);
    }
public:
    TreeNode* convertBST(TreeNode* root) {
        pre = 0;
        traversal(root);
        return root;
    }
};
损失函数大汇总(五十九)(TopoInteraction Loss附公式推导与代码) 本文介绍了TopoInteraction Loss,一种用于多类别分割任务的拓扑交互约束损失函数。不同于传统拓扑损失关注单类别的连通性和孔洞数量,该损失重点约束不同类别之间的空间关系,包括互斥(exclusion)和包含(containment)两种典型拓扑关系。通过将全局拓扑约束转化为局部邻接检测,该损失能准确定位破坏预设拓扑关系的像素,并针对性施加惩罚。关键创新点在于:1)将包含关系转化为互斥约束;2)使用卷积运算高效检测非法邻接;3)仅对违规像素施加损失。实验表明,该方法能有效纠正类别间的错误接触,特 阅读详情

相关推荐

STM32L431电池供电项目实战:用STOP2模式把功耗降到5uA以下(CubeMX配置详解)

本文详细介绍了如何在STM32L431电池供电项目中利用STOP2模式实现5μA以下的超低功耗设计。通过CubeMX配置、硬件优化和软件策略,成功将农业温湿度监测节点的待机功耗控制在4.7μA,确保CR2032电池供电下3年以上的工作寿命。文章包含完整的低功耗实现路径和实测数据,特别适合物联网边缘设备开发者参考。

weixin_30345577的博客 395

Day 23 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树 总结篇

​ 遍历和迭代的思想都要熟悉;

qq_46025584的博客 2127

大模型训练中的AllReduce:从原理到实战,如何优化你的分布式训练效率

本文深入解析了大模型分布式训练的核心通信操作AllReduce,特别是高效的Ring All-Reduce算法原理。文章从实战角度出发,探讨了如何通过通信计算重叠、梯度累积策略、NCCL库调优以及混合并行通信优化等手段,有效降低通信开销,从而显著提升大模型训练效率。

julia4scientist的博客 525

代码随想录刷题笔记 DAY 23 | 修剪二叉搜索树 No.669 | 将有序数组转换为二叉搜索树 No.108 | 把二叉搜索树转换为累加树 No.538

这里理顺这个关系就可以:首先要去返回它符合条件子树来达到修剪的目的,而符合条件的子树肯定是出现在该节点的右子树,然后在右子树中去执行相同的逻辑,那调用这个方法最终返回的结果就是符合规范的子树。💡 其实换个思路去想,将左子树赋值给左子树,相当于没做任何操作,那如果在递归中进行一些操作,使得这个返回值不是左子树,而是左子树的下的节点,那不就完成了节点的删除吗?输入:[4,1,6,0,2,5,7,null,null,null,3,null,null,null,8]所以结果应当返回修剪好的二叉搜索树的新的根节点。

kkq的博客 1043

VMware ubuntu虚拟机(或Centos7)与主机共享文件夹

系统环境 Windows 10 Vmware Workstation 15 Pro Ubuntu 20.04.1 LTS centos7 1.Ubuntu配置共享文件 1.1安装VMware-tools 更新最新VMware-tools组件 编辑->首选项->更新->立即下载所有组件 安装VMware-tools 虚拟机->安装VMware-tools 安装后ubuntu会加载一个虚拟光驱,解压文件,在解压的文件目录下执行以下命令进行安装 sudo vmware-instal

weixin_38924500的博客 2160

创新实训项目博客:基于LoRA的医疗大模型高效微调实战

预训练大语言模型(LLMs)虽然具备了广泛的知识和一定的通用能力,但在特定领域(如医疗)或特定任务(如遵循特定指令格式进行思考链推理)上,其表现往往不尽如人意。微调(Fine-tuning)能够使模型学习到特定领域的数据分布和任务模式,从而在目标任务上获得更好的性能,使其更贴合实际应用需求。使用Unsloth框架加载并以4-bit量化模型。基于数据集,构建了包含明确思考链引导的训练Prompt。配置了LoRA参数,并使用SFTTrainer在单张T4 GPU上对模型进行了高效微调。

m0_73556916的博客 1291

代码随想录算法训练营第day23|669. 修剪二叉搜索树 、 108.将有序数组转换为二叉搜索树 、 538.把二叉搜索树转换为累加树

思路:递归遍历二叉树,如果root(当前节点)的元素小于low的数值,那么应该递归右子树,并返回右子树符合条件的头结点。如果root(当前节点)的元素大于high的,那么应该递归左子树,并返回左子树符合条件的头结点。你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。分割点就是数组中间位置的节点。

qq_60513199的博客 932

多测师肖sir_高级金牌讲师_数据库之存储练习题(8.13.1)

实验 一、 实验要求: 理解存储过程的概念 掌握存储过程的语法格式、使用方法 掌握存 储过程的创建、执行 二、实验前提: – drop table if exists student; – Create table student – (Id varchar(255), #学号 – Name varchar(255), #姓名 – Roomid varchar(255), #班级 – Sex char(1), #性别 – Degree varchar(3) );#成绩; Insert into stud

多测师肖sir的博客 708

代码随想录算法训练营三刷 day23 | 二叉树 之 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

baimaozi_007的博客 969

EM的理论与实践(基础篇)

EM理论与实践

m0_61544122的博客 2383

Vue3 - Arco Design Vue 表格组件 table 隐藏鼠标移入时 hover 高亮背景色,el-table 组件去除鼠标悬停在表格行的 hover 高亮效果(改变鼠标移入时的背景色)

vue3,arcodesignvue,arcodesign,表格,a-table,hover,表格hover的class类名是什么,class,hover,在arcodesignvue项目中,表格组件如何去掉鼠标移入时的hover效果,vue3arco.design表格组件修改鼠标移入行的背景颜色,table表格,取消表格行row移入高亮效果,去掉鼠标移入行时的hover效果,取消a-table的hover状态,取消高亮显示,隐藏表格鼠标hover效果,去除鼠标触摸变色效果,如何取消arco表

🏆 前端领域优质创作者 3773

Day 23 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

因为是要遍历整棵树,做修改,其实不需要返回值也可以,我们也可以完成修剪(其实就是从二叉树中移除节点)的操作。怎么一想这么麻烦呢。上图中,是符合二叉搜索树的特性吧,如果要这么做的话,是不是本题意义就不大了,所以才强调是平衡二叉搜索树。因为数组大家都知道怎么遍历啊,从后向前,挨个累加就完事了,这换成了二叉搜索树,看起来就别扭了一些是不是。例如 有序数组[-10,-3,0,5,9] 就可以构造成这样的二叉搜索树,如图。删除二叉树节点,增加二叉树节点,都是用递归函数的返回值来完成,这样是比较方便的。

DongVeg的博客 1208

运放实现阶梯波发生器-总结报告

实验目的: 学习、理解、掌握方波电路、限幅电路积分累加电路、反馈电路 课程条件: 电脑仿真软件Multisim 原理框图和实验思路: 方波电路通过微分电路可以形成正负脉冲,在通过限幅电路后变为单脉冲,最后在积分电路中形成阶梯波。微分电路存在的意义就是为了防止方波频率过大,从而导致在经过限幅电路的方波,在一个周期内将电容的电充满,这样就不会产生阶梯波。如果方波的频率比较小,可以近似认为是正负脉冲,这样就可以跳过微分电路。 ...............

0 1万+

代码随想录算法训练营DAY23|C++二叉树Part.9|669.修建二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

在这里,我们定义好了左闭右闭区间,为了遵守循环不变量原则,在不断分割的过程中也一定要坚持左闭右闭的原则。划分区间的时候,root的左孩子接住下一层左区间的构造结点,右孩子接住下一层右区间构造的结点。这里定义的是左闭右闭的区间,所以当区间left>right当时候,就是空结点了。也就是说数组上的每个位置,都把其前面位置做一个相加,瞬间就能变成一个送分题。右中左遍历二叉树,中结点的处理逻辑就是让cur的数值加上前一个结点的数值。本题同理,依然用递归函数u的返回值来构造中结点的左右孩子。

糖炒栗子 1255

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

算法学习|Day23-二叉树|Leetcode669. 修剪二叉搜索树 ,Leetcode108.将有序数组转换为二叉搜索树,Leetcode538.把二叉搜索树转换为累加树

春招加油!

WR_mmc的博客 945

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

零基础代码随想录【Day23】|| 669. 修剪二叉搜索树,108.将有序数组转换为二叉搜索树 ,538.把二叉搜索树转换为累加树,二叉树总结

你可能需要改变树的根节点,所以结果应当返回修剪好的二叉搜索树的新的根节点。给出二叉 搜索 树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点 node 的新值等于原树中大于或等于 node.val 的值之和。节点的右子树仅包含键 大于 节点键的节点。如果root(当前节点)的元素小于low的数值,那么应该递归右子树,并返回右子树符合条件的头结点。本题中,一个高度平衡二叉树是指一个二叉树每个节点 的左右两个子树的高度差的绝对值不超过 1。

Andrew______的博客 897

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

代码随想录刷题day23|修剪二叉搜索树&将有序数组转换为二叉搜索树&把二叉搜索树转换为累加树

题目都不是很难。今天二叉树刷完了,周末还是要抽时间复习一遍,整理一下。

东东唯一指定铲屎官 880

代码随想录算法训练营 day23| ● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

迭代法都没看主要是669和538【538很简单】

Calliops的博客 662

代码随想录算法训练营day23 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

LeetCode | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

weixin_69675605的博客 1121

Day23:LeedCode 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

中序遍历二叉搜索树能得到一串递增的数字,本题采用右中左遍历,用两个指针一个指向当前结点一个指向前一节点实现累计效果。改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。树的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。所以结果应当返回修剪好的二叉搜索树的新的根节点。要右中左来遍历二叉树, 中节点的处理逻辑就是让cur的数值加上前一个节点的数值。[1,null,3] 和 [3,1] 都是高度平衡二叉搜索树。

2301_76352996的博客 975

Day23|leetcode 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树

给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。可以证明,存在 唯一的答案。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。示例 1:输入:root = [1,0,2], low = 1, high = 2输出:[1,null,2]

m0_74583479的博客 865

代码随想录Day.23 | 669. 修剪二叉搜索树、108. 将有序数组转换为二叉搜索树、538. 把二叉搜索树转换为累加树

找恰好大于low的节点时,即用正常左中右的中序遍历,pre指针指向前一个,判断root是要找的节点条件是(pre!= NULL && pre->val < low && root->val >= low)此时,root根本不是要删除的,而删除pre比较困难,而且可能存在root是pre右子树中的值这种情况,处理起来更麻烦。针对情况3,说明要保留的部分树的根节点,就是rootbenshen。针对情况3,要在root树中,假如某个节点恰好小于low,则要删除该节点及其左子树,即令其右子树替代他;

papilon_的博客 949

代码随想录算法训练营Day23 | 669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、二叉树总结 | Python | 个人记录向

二叉树:669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、二叉树总结。

Python基本算法 948

Day23|二叉树part09:669. 修剪二叉搜索树、108.将有序数组转换为二叉搜索树、538.把二叉搜索树转换为累加树、总结篇

二叉树:是否对称(opens new window)递归:后序,比较的是根节点的左子树与右子树是不是相互翻转迭代:使用队列/栈将两个节点顺序放入容器中进行比较二叉树:求最大深度(opens new window)递归:后序,求根节点最大高度就是最大深度,通过递归函数的返回值做计算树的高度迭代:层序遍历二叉树:求最小深度(opens new window)递归:后序,求根节点最小高度就是最小深度,注意最小深度的定义迭代:层序遍历二叉树:求有多少个节点(opens new window)

weixin_43303286的博客 648

代码随想录算法训练营day23||二叉树part09、● 669. 修剪二叉搜索树 ● 108.将有序数组转换为二叉搜索树 ● 538.把二叉搜索树转换为累加树

在二叉树:构造二叉树登场!和二叉树:构造一棵最大的二叉树 (opens new window)之后,我们顺理成章的应该构造一下二叉搜索树了,一不小心还是一棵平衡二叉搜索树。其实思路也是一样的,不断中间分割,然后递归处理左区间,右区间,也可以说是分治。此时相信大家应该对通过递归函数的返回值来增删二叉树很熟悉了,这也是常规操作。在定义区间的过程中我们又一次强调了循环不变量的重要性。最后依然给出迭代的方法,其实就是模拟取中间元素,然后不断分割去构造二叉树的过程。

qq_40222433的博客 989

代码随想录二刷 day23 | 二叉树 之 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

二叉树 之 669. 修剪二叉搜索树 108.将有序数组转换为二叉搜索树 538.把二叉搜索树转换为累加树

baimaozi_007的博客 675
上一篇: 显卡驱动CUDA 和 pytorch CUDA 之间的区别
下一篇: 刷题记录|Day24 ● 回溯理论基础 ● 77. 组合
null_one
博客等级 码龄8年 847粉丝 87原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值