- 博客(118)
- 收藏
- 关注
原创 《代码随想录》Ⅸ 动态规划 96. 不同的二叉搜索树
来解决不同的二叉搜索树(BST)计数问题。通过将问题分解为更小的子问题,我们可以找到n个节点能组成的不同BST数量。关键观察点是:对于n个节点的BST,其总数等于以每个节点为根节点时,左子树和右子树可能情况的乘积之和。从i=2开始到n,计算每个节点数的BST数量。这道题的核心思想是使用。
2025-04-16 16:04:33
377
原创 《代码随想录》Ⅸ 动态规划 343. 整数拆分
来解决整数拆分问题。通过将问题分解为更小的子问题,我们可以找到将整数n拆分成k个正整数之和后乘积最大化的方法。关键观察点是:对于任何整数i,其最大乘积可以通过比较所有可能的拆分组合(拆分成j和i-j)来获得。从i=3开始到n,计算每个数字的最大乘积。 ),并使这些整数的乘积最大化。这道题的核心思想是使用。你可以获得的最大乘积。
2025-04-16 15:44:35
304
原创 《代码随想录》Ⅸ 动态规划 63. 不同路径 II
来解决带障碍物的网格路径计数问题。与基础版不同之处在于需要考虑障碍物的存在,当遇到障碍物时路径数变为0。通过分析机器人只能向右或向下移动的特性,可以发现到达每个无障碍物格子的路径数等于其上方格子和左方格子路径数之和。:第一行和第一列需要单独初始化,遇到障碍物后后续格子不可达。:遇到障碍物时路径数直接置0,且会阻断后续路径。机器人每次只能向下或者向右移动一步。:dp数组初始全0,简化了障碍物的处理逻辑。机器人的移动路径中不能包含。返回机器人能够到达右下角的不同路径数量。网格中的障碍物和空位置分别用。
2025-04-16 15:37:52
836
原创 《代码随想录》Ⅸ 动态规划 62. 不同路径
来解决网格路径计数问题。通过分析机器人只能向右或向下移动的特性,可以发现到达每个格子的路径数等于其上方格子和左方格子路径数之和。这种递推关系非常适合用动态规划来解决。机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角(在下图中标记为 “Finish” )。 网格的左上角 (起始点在下图中标记为 “Start” )。问总共有多少条不同的路径?这道题的核心思想是使用。
2025-04-16 14:55:41
267
原创 《代码随想录》Ⅸ 动态规划 746. 使用最小花费爬楼梯
来解决最小花费爬楼梯问题。通过分析问题可以发现,到达第i阶的最小花费取决于前两阶的最小花费加上相应的cost值。这种最优子结构特性非常适合用动态规划来解决。 个台阶向上爬需要支付的费用。一旦你支付此费用,即可选择向上爬一个或者两个台阶。请你计算并返回达到楼梯顶部的最低花费。 的台阶开始爬楼梯。这道题的核心思想是使用。
2025-04-16 14:47:59
314
原创 《代码随想录》Ⅸ 动态规划 70. 爬楼梯
这道题的核心思想是使用动态规划来解决爬楼梯问题。通过将问题分解为子问题,我们可以发现:到达第n阶楼梯的方法数等于到达第n-1阶和第n-2阶方法数之和。这是因为每次可以选择爬1阶或2阶。你有多少种不同的方法可以爬到楼顶呢? 阶你才能到达楼顶。
2025-04-16 14:40:26
282
原创 《代码随想录》Ⅷ 贪心算法 968. 监控二叉树
给定一个二叉树,我们在树的节点上安装摄像头。节点上的每个摄影头都可以监视其父对象、自身及其直接子对象。计算监控树的所有节点所需的最小摄像头数量。这道题的核心是使用贪心算法+后序遍历来确定摄像头的最小安装位置。具体思路如下:状态定义:后序遍历策略:状态转移规则:三、代码解析1. 算法工作原理分解1.1 后序遍历阶段遍历顺序:左右根关键操作:递归处理左右子树状态获取:, 1.2 状态判断阶段情况1:左右子树都有覆盖(状态2)情况2:任一子树无覆盖(状态0)情况3:任一子树有摄像头
2025-04-15 01:08:12
367
原创 《代码随想录》Ⅷ 贪心算法 738.单调递增的数字
从标记位置开始,将所有后续位设置为9,确保得到最大的可能数字。:从数字的末尾开始向前扫描,寻找第一个违反单调递增的位置。来找到满足条件的最大数字。:将数字转换为字符串,方便逐位处理。:从后向前(索引size-1到1)当且仅当每个相邻位数上的数字。革命尚未成功,同志仍需努力! 时,我们称这个整数是。的最大数字,且数字呈。
2025-04-15 01:05:57
277
原创 《代码随想录》Ⅷ 贪心算法 56. 合并区间
每次处理都保证结果集最后一个区间是最新的可合并区间。:合并时取两个区间结束位置的较大值作为新区间的结束。:依次处理每个区间,与结果集中的最后一个区间比较。:首先将所有区间按照起始位置进行排序。:确保后续只需线性扫描即可完成合并。:使所有区间按起始位置有序排列。革命尚未成功,同志仍需努力!:使用自定义比较函数。
2025-04-01 00:16:10
399
原创 《代码随想录》Ⅷ 贪心算法 763. 划分字母区间
我们要把这个字符串划分为尽可能多的片段,同一字母最多出现在一个片段中。关键点在于:通过维护当前区间的最大边界,确保区间内所有字母都不会出现在后续区间中。注意,划分结果需要满足:将所有划分结果按顺序连接,得到的字符串仍然是。返回一个表示每个字符串片段的长度的列表。革命尚未成功,同志仍需努力!:当前指针到达区间最大边界。:维护当前区间的首尾指针。 的划分是非法的。
2025-03-31 23:58:51
364
原创 《代码随想录》Ⅷ 贪心算法 435. 无重叠区间
优先保留结束早的区间(结束早意味着给后续留出更多空间):将"最少移除区间数"转化为"最多保留不重叠区间数"需要移除区间的最小数量,使剩余区间互不重叠。革命尚未成功,同志仍需努力!只在一点上接触的区间是。
2025-03-31 00:39:14
344
原创 《代码随想录》Ⅷ 贪心算法 452. 用最少数量的箭引爆气球
一支弓箭可以沿着 x 轴从不同点完全垂直地射出。在坐标 x 处射出一支箭,如果一个气球的直径的开始和结束坐标为。,则该气球会被引爆。可以射出的弓箭的数量没有限制。弓箭一旦被射出之后,可以无限地前进。我们有一些球形气球贴在一堵用 XY 平面表示的墙面上。墙面上的气球记录在整数数组。:将每个气球看作一个区间,问题转化为找到最少的点,使得每个区间至少包含一个点。,返回引爆所有气球所必须射出的最小弓箭数。我们不知道气球的确切 y 坐标。 表示第 i 个气球的水平直径在。:首先将所有区间按照起始点进行排序。
2025-03-31 00:12:35
562
原创 《代码随想录》Ⅷ 贪心算法 406. 根据身高重建队列
具体来说,我们需要按照一定的规则对人群进行排序,然后在合适的位置插入每个人,以确保最终队列满足题目的要求。通过这种贪心策略,我们可以确保在插入每个人时,前面已经插入的人的身高都是大于或等于当前人的身高,并且。 表示队列中一些人的属性(不一定按顺序)。返回的队列应该格式化为数组。假设有打乱顺序的一群人站成一个队列,数组。:将每个人插入到队列的合适位置,以确保前面有。个身高大于或等于当前人的人。 个身高大于或等于。请你重新构造并返回输入数组。 是排在队列前面的人)。这道题的核心思想是使用。
2025-03-17 11:20:01
670
原创 《代码随想录》Ⅷ 贪心算法 860. 柠檬水找零
即在每一步选择中,尽可能多地使用现有的零钱来进行找零,以确保能够满足后续的找零需求。具体来说,当顾客支付10元或20元时,优先使用10元进行找零,因为10元只能用于找零5元,而5元可以用于更多的找零场景。你必须给每个顾客正确找零,也就是说净交易是每位顾客向你支付。如果你能给每位顾客正确找零,返回。:根据顾客支付的金额进行找零,并更新零钱数量。顾客排队购买你的产品,(按账单。每位顾客只买一杯柠檬水,然后向你付。注意,一开始你手头没有任何零钱。 支付的顺序)一次购买一杯。这道题的核心思想是使用。
2025-03-17 10:50:16
530
原创 《代码随想录》Ⅷ 贪心算法 135. 分发糖果
确保如果当前孩子的评分比前一个孩子高,则当前孩子的糖果数比前一个孩子多1。:确保如果当前孩子的评分比后一个孩子高,则当前孩子的糖果数比后一个孩子多1。通过这种方式,可以确保每个孩子都能满足条件,并且总糖果数是最小的。请你给每个孩子分发糖果,计算并返回需要准备的。 个孩子站成一排。:初始时,每个孩子都分配1个糖果。 表示每个孩子的评分。这道题的核心思想是使用。
2025-03-17 10:17:24
880
原创 《代码随想录》Ⅷ 贪心算法 134. 加油站
通过计算每个加油站的汽油剩余量,找到能够环绕所有加油站一周的起始点。 ,如果你可以按顺序绕环路行驶一周,则返回出发时加油站的编号,否则返回。你从其中的一个加油站出发,开始时油箱为空。:找到能够环绕所有加油站一周的起始点。你有一辆油箱容量无限的的汽车,从第。 个加油站需要消耗汽油。 个加油站,其中第。这道题的核心思想是使用。
2025-03-17 09:59:41
518
原创 《代码随想录》Ⅷ 贪心算法 1005. K 次取反后最大化的数组和
为奇数,说明还需要进行一次取反操作,选择数组中绝对值最小的元素进行取反。:遍历数组,对负数进行取反操作,直到用完所有的取反次数。可以多次选择同一个下标。以这种方式修改数组后,返回数组。:计算数组所有元素的和并返回。这道题的核心思想是使用。
2025-03-17 09:43:18
602
原创 《代码随想录》Ⅷ 贪心算法 45. 跳跃游戏 II
通过维护当前能够跳跃的最远距离和当前跳跃的边界,来逐步更新跳跃次数。具体来说,我们通过遍历数组,不断更新当前能够跳跃的最远距离,当遍历到当前跳跃的边界时,增加跳跃次数,并将边界更新为新的最远距离。这样,我们可以在一次遍历中计算出到达数组最后一个元素所需的最小跳跃次数。:更新当前能够跳跃的最远距离,并检查是否需要增加跳跃次数。 向后跳转的最大长度。 的最小跳跃次数。生成的测试用例可以到达。:初始化变量,准备遍历数组。 处,你可以跳转到任意。:返回最终的最小跳跃次数。这道题的核心思想是使用。
2025-03-14 10:38:09
273
原创 《代码随想录》Ⅷ 贪心算法 55. 跳跃游戏
贪心算法的关键在于每一步都做出局部最优的选择,最终达到全局最优。在这道题中,局部最优的选择就是尽可能跳跃到最远的位置,从而最大化覆盖范围。,并检查是否能够覆盖到数组的最后一个位置。如果能够覆盖到最后一个位置,说明可以从起点跳跃到终点,返回。:更新当前能够到达的最远距离,并检查是否能够覆盖到最后一个位置。 来表示当前能够到达的最远距离。数组中的每个元素代表你在该位置可以跳跃的最大长度。判断你是否能够到达最后一个下标,如果可以,返回。:初始化变量,准备遍历数组。 ,你最初位于数组的。:返回最终判断结果。
2025-03-14 09:57:19
404
原创 《代码随想录》Ⅷ 贪心算法 53. 最大子数组和
这道题的核心思想是使用贪心算法,通过动态维护当前子数组的和来找到最大子数组和。具体来说,我们遍历数组,累加当前元素到当前子数组和curValue中。如果curValue小于等于0,说明当前子数组和对结果没有贡献,因此将curValue重置为0,重新开始计算新的子数组和。通过这种方式,我们可以确保在遍历过程中始终记录下最大的子数组和。 ,请你找出一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。:计算当前子数组和,并动态更新最大子数组和。是数组中的一个连续部分。
2025-03-13 09:42:42
344
原创 《代码随想录》Ⅷ 贪心算法 376. 摆动序列
摆动序列的特点是相邻元素之间的差值在正负之间交替变化。我们可以通过遍历数组,记录每次差值变化的方向,从而确定摆动序列的长度。第一个差(如果存在的话)可能是正数或负数。仅有一个元素或者含两个不等元素的序列也视作摆动序列。可以通过从原始序列中删除一些(也可以不删除)元素来获得,剩下的元素保持其原始顺序。的符号相反,说明出现了摆动,此时我们可以增加摆动序列的长度,并更新。如果连续数字之间的差严格地在正数和负数之间交替,则数字序列称为。通过这种方式,我们可以找到最长的摆动子序列。这道题的核心思想是使用贪心算法,
2025-03-13 09:25:19
793
原创 《代码随想录》Ⅷ 贪心算法 455. 分发饼干
具体来说,我们先将孩子和饼干的胃口大小数组分别进行排序,然后从最大的孩子和最大的饼干开始匹配。如果当前饼干能够满足当前孩子的胃口,就将该饼干分配给孩子,并继续匹配下一个孩子和下一个饼干。如果当前饼干不能满足当前孩子的胃口,则继续尝试下一个更小的饼干。通过这种方式,我们可以确保每次分配都是当前最优的选择,从而达到全局最优解。假设你是一位很棒的家长,想要给你的孩子们一些小饼干。你的目标是满足尽可能多的孩子,并输出这个最大数值。:从最大的孩子和最大的饼干开始匹配,尽可能多地满足孩子的胃口。
2025-03-13 09:14:03
752
原创 《代码随想录》Ⅶ 回溯算法 332.重新安排行程
由于题目要求按字典序返回最小的行程组合,因此在选择下一个目的地时,我们需要优先选择字典序较小的机场。为了实现这一点,我们使用了一个嵌套的数据结构:unordered_map<string, map<string, int>>,其中外层unordered_map的键是出发机场,内层map的键是到达机场,值是该航班的剩余次数。如果存在多种有效的行程,请你按字典排序返回最小的行程组合。:递归地尝试从当前机场出发,选择下一个目的地,并构建有效的行程路径。:从当前机场出发,遍历所有可能的目的地。
2025-03-12 23:26:02
665
原创 《代码随想录》Ⅶ 回溯算法-棋盘 37. 解数独
回溯算法是一种通过递归来枚举所有可能的解,并在每一步尝试中剪枝(即排除无效解)的算法。在数独问题中,我们需要在每一个空格中尝试填入数字1-9,并检查是否符合数独的规则。如果不符合,则回溯到上一步,尝试下一个数字。:递归地尝试在每一个空格中填入数字,并通过剪枝操作避免生成无效的解。编写一个程序,通过填充空格来解决数独问题。函数检查当前填入的数字是否符合数独规则。数独部分空格内已填入了数字,空白格用。:遍历整个数独棋盘,找到空位(用。:在空位中尝试填入数字1-9。:调用回溯函数,解决数独问题。
2025-03-11 17:37:02
411
原创 《代码随想录》Ⅶ 回溯算法-棋盘 51. N 皇后
回溯算法是一种通过递归尝试所有可能的解,并在发现当前解不符合条件时进行回退的算法。在N皇后问题中,我们需要在每一行放置一个皇后,并确保每一列和每一条斜线上都没有其他皇后。通过递归地尝试每一行的每一个可能的位置,并在放置皇后后检查是否满足条件,最终找到所有可能的解。按照国际象棋的规则,皇后可以攻击与之处在同一行或同一列或同一斜线上的棋子。:递归地尝试在每一行放置皇后,并通过剪枝操作避免生成无效的解。:初始化棋盘并调用回溯函数,生成所有可能的解。 函数,尝试在每一行放置皇后。:返回生成的所有可能的解。
2025-03-11 16:50:27
712
原创 《代码随想录》Ⅶ 回溯算法-排列 47. 全排列 II
这道题的核心思想是使用回溯算法来生成所有可能的全排列,同时通过排序和剪枝操作避免生成重复的排列。回溯算法是一种通过递归遍历所有可能解的方法,通常用于解决组合、排列、子集等问题。在本问题中,由于数组 nums 可能包含重复数字,因此需要在生成排列时进行去重操作,以确保最终结果中不包含重复的排列。:递归地生成所有可能的全排列,并通过剪枝操作避免生成重复的排列。:初始化并调用回溯函数,生成所有不重复的全排列。:通过排序和剪枝操作来避免生成重复的排列。:返回生成的所有不重复的全排列。 函数生成所有可能的全排列。
2025-03-11 14:51:17
769
原创 《代码随想录》Ⅶ 回溯算法-子集 491. 非递减子序列
来生成所有可能的递增子序列。由于数组中可能包含重复元素,我们需要在回溯过程中进行去重操作。具体来说,我们通过一个。数组中可能含有重复元素,如出现两个整数相等,也可以视作递增序列的一种特殊情况。 ,找出并返回所有该数组中不同的递增子序列,递增子序列中。来记录当前路径中已经使用过的元素,避免生成重复的子序列。:递归地生成所有可能的递增子序列,并避免生成重复的子序列。:初始化并调用回溯函数,生成所有可能的递增子序列。这道题的核心思想是使用。
2025-03-11 14:30:03
331
原创 《代码随想录》Ⅶ 回溯算法-子集 90. 子集 II
来生成所有可能的子集。由于数组中可能包含重复元素,为了避免生成重复的子集,我们需要在回溯过程中进行剪枝操作。具体来说,我们在递归时跳过与前一个元素相同且未被使用的元素,从而确保不会生成重复的子集。 ,其中可能包含重复元素,请你返回该数组所有可能的 子集(幂集)。:递归地生成所有可能的子集,并避免生成重复的子集。返回的解集中,子集可以按。:初始化并调用回溯函数,生成所有可能的子集。这道题的核心思想是使用。
2025-03-11 14:12:19
629
原创 《代码随想录》Ⅶ 回溯算法-子集 78. 子集
来生成所有可能的子集。通过递归地尝试将数组中的每个元素加入或不加入当前子集,最终生成所有可能的子集组合。由于数组中的元素互不相同,因此生成的子集也不会重复。:初始化并调用回溯函数,生成所有可能的子集。返回该数组所有可能的子集(幂集)。:递归地生成所有可能的子集。这道题的核心思想是使用。
2025-03-11 13:55:55
632
原创 《代码随想录》Ⅶ 回溯算法-分割 93. 复原 IP 地址
这道题的核心思想是使用回溯算法来生成所有可能的IP地址组合。通过递归地尝试在每个可能的位置插入点号(.),并确保每个子串是有效的IP地址段(即0到255之间的整数,且不以0开头,除非是0本身),最终生成所有合法的IP地址。:初始化并调用回溯函数,生成所有可能的IP地址组合。 ,用以表示一个 IP 地址,返回所有可能的。:判断给定子串是否为有效的IP地址段。:递归地生成所有可能的IP地址组合。正好由四个整数(每个整数位于。 之间组成,且不能含有前导。给定一个只包含数字的字符串。,这些地址可以通过在。
2025-03-11 13:45:00
706
原创 《代码随想录》Ⅶ 回溯算法-分割 131. 分割回文串
来生成所有可能的回文子串分割方案。回溯算法通过递归的方式,逐步构建解空间树,并在过程中进行剪枝,以避免无效的搜索。具体来说,我们从字符串的起始位置开始,尝试将其分割成不同的子串,并检查这些子串是否为回文串。如果是回文串,则将其加入当前分割方案,并递归地处理剩余的字符串。如果当前分割方案中的所有子串都是回文串,则将其加入结果集。:初始化并调用回溯函数,生成所有可能的回文子串分割方案。:递归地生成所有可能的回文子串分割方案。:判断给定子串是否为回文串。这道题的核心思想是使用。
2025-03-11 13:19:44
641
原创 《代码随想录》Ⅶ 回溯算法-组合 40. 组合总和 II
来生成所有可能的组合。回溯算法通过递归的方式,逐步构建解空间树,并在过程中进行剪枝,以避免无效的搜索。具体来说,我们从候选数组中依次选择数字,尝试将其添加到当前组合中,并递归地处理剩余的目标值。如果当前组合的和等于目标值,则将其加入结果集;如果超过了目标值,则回溯并尝试其他可能的组合。为了确保组合的唯一性,我们需要对候选数组进行排序,并在递归过程中跳过重复的数字。:递归地生成所有可能的组合,使得这些组合的和等于。:初始化并调用回溯函数,生成所有可能的组合。 中的每个数字在每个组合中只能使用。
2025-03-11 12:41:36
572
原创 《代码随想录》Ⅶ 回溯算法-组合 39. 组合总和
来生成所有可能的组合。回溯算法是一种通过递归来枚举所有可能解的算法,特别适用于组合、排列、子集等问题。在本题中,我们需要从给定的候选数字中找出所有和为。:通过递归尝试所有可能的组合,并在每一步进行选择、递归和撤销选择(回溯)。如果至少一个数字的被选数量不同,则两种组合是不同的。:递归地生成所有可能的组合,使得这些组合的和等于。:初始化并调用回溯函数,生成所有可能的组合。:在递归过程中,如果当前组合的和已经超过。 的组合,并且同一个数字可以重复使用。,则可以直接停止递归,避免无效的搜索。
2025-03-11 11:20:21
855
原创 《代码随想录》Ⅶ 回溯算法-组合 17. 电话号码的字母组合
来生成所有可能的组合:在这道题中,我们需要根据输入的数字字符串,生成所有可能的字母组合。每个数字对应多个字母,我们需要遍历所有可能的字母组合,并将符合条件的组合保存到结果集中。给出数字到字母的映射如下(与电话按键相同)。注意 1 不对应任何字母。 的字符串,返回所有它能表示的字母组合。:初始化并调用回溯函数,生成所有可能的组合。:递归地生成所有可能的组合。这道题的核心思想是使用。
2025-03-11 10:56:53
313
原创 《代码随想录》Ⅶ 回溯算法-组合 216. 组合总和 III
该列表不能包含相同的组合两次,组合可以以任何顺序返回。:初始化并调用回溯函数,生成所有可能的组合。:递归地生成所有可能的组合。所有可能的有效组合的列表。这道题的核心思想是使用。
2025-03-10 11:37:51
584
原创 《代码随想录》Ⅶ 回溯算法-组合 77. 组合
来生成所有可能的组合。回溯算法是一种通过递归来探索所有可能解的算法,通常用于解决组合、排列、子集等问题。在这道题中,我们需要从范围。通过这种方式,我们可以遍历所有可能的组合,并确保每个组合都是唯一的。:初始化并调用回溯函数,生成所有可能的组合。:递归地生成所有可能的组合。 个数的所有可能组合。这道题的核心思想是使用。
2025-03-10 11:08:39
481
原创 《代码随想录》Ⅵ 二叉树 538. 把二叉搜索树转换为累加树
通常的中序遍历顺序是“左-根-右”,而反中序遍历的顺序是“右-根-左”。通过这种方式,我们可以从二叉搜索树(BST)的最大值开始遍历,逐步累加节点的值,从而将BST转换为累加树(Greater Sum Tree)。给出二叉搜索树(BST)的根节点,该树的节点值各不相同,请你将其转换为累加树(Greater Sum Tree),使每个节点。:通过反中序遍历,从最大节点开始,逐步累加节点值,并修改节点值。 的新值等于原树中大于或等于。
2025-03-10 09:51:23
576
原创 《代码随想录》Ⅵ 二叉树 108. 将有序数组转换为二叉搜索树
将一个升序排列的整数数组转换为高度平衡的 二叉搜索树(BST)。由于数组已经有序,我们可以通过递归的方式将数组的中间元素作为根节点,然后将数组分为左右两部分,分别递归构建左子树和右子树。这样做的目的是保证生成的 BST 是高度平衡的,即左右子树的高度差不超过 1。:通过递归将有序数组的中间元素作为根节点,并分别构建左右子树。
2025-03-09 23:55:15
313
原创 《代码随想录》Ⅵ 二叉树 669. 修剪二叉搜索树
改变保留在树中的元素的相对结构 (即,如果没有被移除,原有的父代子代关系都应当保留)。所以结果应当返回修剪好的二叉搜索树的新的根节点。注意,根节点可能会根据给定的边界发生改变。通过递归和分情况讨论,可以高效地完成修剪操作,并保持 BST 的结构不变。在二叉搜索树(BST)中修剪节点,使得所有节点的值在。:通过递归判断当前节点是否需要保留,并修剪其子树。修剪时,我们从根节点开始,根据当前节点的值与。通过修剪二叉搜索树,使得所有节点的值在。给你二叉搜索树的根节点。 ,同时给定最小边界。
2025-03-09 23:39:32
664
原创 《代码随想录》Ⅵ 二叉树 701. 二叉搜索树中的插入操作
删除时,我们从根节点开始,根据要删除的节点值与当前节点值的大小关系,决定向左子树或右子树递归查找要删除的节点。在二叉搜索树(BST)中删除一个节点,并返回删除后的树根节点。对应的节点,并保证二叉搜索树的性质不变。返回二叉搜索树(有可能被更新)的根节点的引用。:通过递归查找要删除的节点,并根据其子树情况分情况处理。给定一个二叉搜索树的根节点。,删除二叉搜索树中的。
2025-03-09 00:07:36
726
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人