自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(51)
  • 收藏
  • 关注

原创 代码随想录算法训练营第六十三天|84.柱状图中的最大矩形

没想到两个月那么快,也没想到我这次真的能坚持下来。现在看来,我并没有蜕变,总结一下原因,自己也没有认认真真,老老实实的每一道题都搞明白,彻彻底底搞懂,反而很多题都是看了卡哥的讲解,自己照猫画虎AC了也就过了。非要说有什么突飞猛进的话也不太可能,尽管现在的我并没有当初加入训练营之前幻想的自己那么强,但收获总还是有的,也让我明白了自己和他人的差距,不过更重要的还是明白了刷题不是一时的,而是需要长期坚持的。LeetCode84.柱状图中的最大矩形。思路:跟接雨水很相似。

2024-05-07 17:15:37 274

原创 代码随想录算法训练营第六十二天|503.下一个更大元素Ⅱ、42.接雨水

思路:乍一看跟下一个更大元素Ⅰ没什么不同,无非就是本题要循环数组了。想法一:直接拼接一个nums在后面,遍历就可以了。LeetCode503.下一个更大元素Ⅱ。想法二:假装拼接一个,想法很巧妙。LeetCode42.接雨水。思路:单调栈是按行来计算的。

2024-05-07 12:01:53 471

原创 代码随想录算法训练营第六十一天|739.每日温度、496.下一个更大元素Ⅰ

没有重复元素,我们就可以用map来做映射了。根据数值快速找到下标,还可以判断nums2[i]是否在nums1中出现过。求哪个数组中的前一个或后一个更大元素,哪个数组元素入栈。这道题还需要建立nums1中数组元素值和下标的映射关系。思路:这题本质上跟上一题一样。相较于上题记录下标,因为没有重复元素,这题直接记录值会方便点。LeetCode496.下一个更大元素Ⅰ。LeetCode739.每日温度。思路:第一次接触单调栈,时间复杂度为O(n)。

2024-05-06 20:20:11 460

原创 代码随想录算法训练营第六十天|674.回文子串、516.最长回文子序列

思路:一种递归关系,也就是判断一个子字符串(字符串的下表范围[i,j])是否回文,依赖于,子字符串(下表范围[i + 1, j - 1])) 是否是回文。布尔类型的dp[i][j]:表示区间范围[i,j] (注意是左闭右闭)的子串是否是回文子串,如果是dp[i][j]为true,否则为false。当s[i]与s[j]不相等,那没啥好说的了,dp[i][j]一定是false。整体上是两种,就是s[i]与s[j]相等,s[i]与s[j]不相等这两种。当s[i]与s[j]相等时,这就复杂一些了,有如下三种情况。

2024-05-05 21:19:37 457

原创 代码随想录算法训练营第五十六天|583.两个字符串的删除操作、72.编辑距离

其他情况时,dp[i][j]就应该取dp[i - 1][j] + 1和dp[i][j - 1] + 1中的最小值,这里为什么加1?因为word1[i - 1]不等于word2[j - 1]的时候,就要删除再分别从两个角度考虑。当word1[i - 1] == word2[j - 1]时,word1[i - 1]和word2[j - 1]都不用删除,dp[i][j]就等于dp[i - 1][j - 1].思路:dp[i][j]:使以i-1为尾的word1和以j-1为尾的word2相同的最小步数。

2024-04-30 17:24:37 156

原创 代码随想录算法训练营第五十五天|392.判断子序列、115.不同的子序列

思路:这题包括上题都没有太明确dp数组的含义,而是把二维数组画出来自然而然就能写出递推公式了,有时候我觉得不用陷入模板太深也未尝不可。思路:自己AC的,一直困在二维数组的遍历中。LeetCode115.不同的子序列。LeetCode392.判断子序列。

2024-04-30 16:29:32 340

原创 代码随想录算法训练营第五十三天|1143.最长公共子序列、1035.不相交的线、53.最大子数和

思路:跟上一题最长重复子数组好像,不过这题不要求连续。主要的还是dp数组的定义以及递推公式。思路:dp[i]:以nums[i]为尾的连续子数组的最大和。LeetCode1143.最长公共子序列。LeetCode1035.不相交的线。思路:就是求两数组的最长公共子序列。LeetCode53.最大子数和。总结:有难又不难的感觉。

2024-04-28 20:20:52 506

原创 代码随想录算法训练营第五十二天|300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

dp[i]:以nums[i]为尾的最长递增子序列的长度(注意以nums[i]为尾不一定包含nums[i])思路:本题跟上题大体一致,但是有了上题经验,这题还是很轻松就写出来了。LeetCode674.最长连续递增序列。LeetCode300.最长递增子序列。思路:每次遇到一个新系列总是想不出来。LeetCode718.最长重复子数组。

2024-04-26 21:48:19 347

原创 代码随想录算法训练营第五十一天|309.买卖股票的最佳时机含冷冻期、714.买卖股票的最佳时机含手续费

思路:这题我依照前面几题的做法选择了划分为三种状态,感觉还是蛮清晰的。LeetCode309.买卖股票的最佳时机含冷冻期。dp[i][1]:第i天不持有股票后手头的最大金额。LeetCode714.买卖股票的最佳时机含手续费。dp[i][0]:第i天持有股票后手头的最大金额。思路:这题很简单,也没什么好说的。dp[i][2]:冷冻期。

2024-04-25 20:24:25 282

原创 代码随想录算法训练营第五十天|123.买卖股票的最佳时机Ⅲ、188.买卖股票的最佳时机Ⅳ

思路:这题乍一看至多完成两笔交易会很懵,其实第一次见确实不好想,但是见过一次的话后面应该能想到。前面我们都是用dp[i][0]和dp[i][1]来表示第i天持有或不持有股票的状态,这里我们要厘清有哪几种状态。dp[i][1]:第i天第一次买入股票后手头最大金额。dp[i][0]:第i天不进行任何操作的手头最大金额。dp[i][2]:第i天第一次卖出股票后手头最大金额。dp[i][3]:第i天第二次买入股票后手头最大金额。dp[i][4]:第i天第二次卖出股票后手头最大金额。

2024-04-25 17:04:28 353

原创 代码随想录算法训练营第四十九天|121.买卖股票的最佳时机、122.买卖股票的最佳时机Ⅱ

这里需要二维dp,dp[i][0]表示第i天持有股票的最大金额,dp[i][1]表示第i天不持有股票的最大金额。那么第i天持有股票即dp[i][0],如果是第i天买入股票,所得现金就是昨天不持有股票的所得现金 减去 今天的股票价格 即:dp[i - 1][1] - prices[i]。中,因为股票全程只能买卖一次,所以如果买入股票,那么第i天持有股票即dp[i][0]一定就是 -prices[i]。而本题,因为一只股票可以买卖多次,所以当第i天买入股票的时候,所持有的现金可能有之前买卖过的利润。

2024-04-23 17:12:16 253

原创 代码随想录算法训练营第四十八天|198.打家劫舍、213.打家劫舍Ⅱ、337.打家劫舍Ⅲ

如果不偷当前节点,那么左右孩子就可以偷,至于到底偷不偷一定是选一个最大的,所以:val2 = max(left[0], left[1]) + max(right[0], right[1]);dp数组(dp table)以及下标的含义:下标为0记录不偷该节点所得到的的最大金钱,下标为1记录偷该节点所得到的的最大金钱。即:{不偷当前节点得到的最大金钱,偷当前节点得到的最大金钱}首先明确的是使用后序遍历。思路:dp[i]:考虑偷下标为i的房间所得的最高金额。思路:dp[i]:考虑偷下标为i的房间所得的最高金额。

2024-04-23 16:10:52 578

原创 代码随想录算法训练营第四十六天|139.单词拆分

思路:从每个单词可以使用无限次就看出来是个完全背包问题了,但递推公式怎么也没想出来。LeetCode139.单词拆分。

2024-04-21 16:25:56 439

原创 代码随想录算法训练营第四十五天|57.爬楼梯、322.零钱兑换、279.完全平方数

思路:每个物品能用多次——完全背包。求排列,遍历顺序要先背包后物品。LeetCode279.完全平方数。LeetCode322.零钱兑换。LeetCode57.爬楼梯。

2024-04-19 20:04:50 462

原创 代码随想录算法训练营第四十四天|518.零钱兑换Ⅱ、377. 组合总和 Ⅳ

总结:我发现二维dp递推公式很好理解,也不用考虑什么遍历顺序是该先遍历物品还是先遍历背包,但是初始化很麻烦,一维dp的初始化就很方便,但是递推公式就没那么好想,遍历顺序也要斟酌。C++测试用例有两个数相加超过int的数据,所以需要在if里加上dp[j] < INT_MAX - dp[j - num]。关键还是dp的递推公式怎么来的,dp[j] += dp[j - coins[i]]。同时还要注意,先遍历物品后遍历背包是求组合。先遍历背包后遍历物品是求排列。LeetCode518.零钱兑换Ⅱ。

2024-04-18 21:54:03 435

原创 代码随想录算法训练营第四十三天|494.目标和、474.一和零

思路:先理解二维dp[i][j]表示从前i个nums中任选装满容量为j的背包有多少种方法。注意dp[0][0]应该等于1而不是0。LeetCode494.目标和。总结:太难了,目标和想了好几天。一维dp实在是太难想了。

2024-04-17 21:40:41 477

原创 代码随想录算法训练营第四十二天|416.分割等和子集、1049.最后一块石头的重量 II

思路:不同于传统的01背包问题求解的容量不超过j的最大价值,这题是求背包总价值等于给定子集和的一半。可以把重量和价值看成一样的。LeetCode416分割等和子集。总结:说实话很难看出是01背包。

2024-04-16 15:27:11 297

原创 代码随想录算法训练营第四十一天|343.整数拆分、96不同的二叉搜索树

j * (i - j) 是单纯的把整数拆分为两个数相乘,而j * dp[i - j]是拆分成两个以及两个以上的个数相乘。如果定义dp[i - j] * dp[j] 也是默认将一个数强制拆成4份以及4份以上了。LeetCode96不同的二叉搜索树。LeetCode343.整数拆分。思路:只可意会不可言传。

2024-04-15 19:58:52 260

原创 代码随想录算法训练营第三十九天|63.不同路径Ⅱ

思路:有石头的地方标记为不可达就行了。LeetCode63.不同路径Ⅱ。

2024-04-15 19:49:58 213

原创 代码随想录算法训练营第三十七天|738.单调递增的数字

LeetCode738.单调递增的数字。思路:两位两位从后向前比较。

2024-04-15 15:42:43 312

原创 代码随想录算法训练营第三十六天|435.无重叠区间、763.划分字母区间、56.合并区间

思路:同上一题用最少数量的箭引爆气球几乎一模一样呢,凡是重叠区间问题记得先排序。思路:思路有,不知道该怎么实现。还是题刷的太少了吗?LeetCode763.划分字母区间。LeetCode435.无重叠区间。

2024-04-14 20:57:15 369

原创 代码随想录算法训练营第三十五天|860.柠檬水找零、406.根据身高重建队列、452.用最少数量的箭引爆气球

思路:简单的一道模拟题,只有bill = 20的时候优先用10块的来找零感觉用到了贪心。思路:需要两个维度进行排序的,不要两边一起贪,会顾此失彼。LeetCode452.用最少数量的箭引爆气球。思路:为了让气球尽可能的重叠,需要对数组排序。LeetCode406.根据身高重建队列。LeetCode860.柠檬水找零。

2024-04-14 19:52:56 263

原创 代码随想录算法训练营第三十五天|509.斐波那契数、70.爬楼梯、746.使用最小花费爬楼梯、62.不同路径

从递归公式dp[i] = dp[i - 1] + dp[i - 2];中可以看出,dp[i]是依赖 dp[i - 1] 和 dp[i - 2],那么遍历的顺序一定是从前到后遍历的。思路:明确dp[i]表示的意义:到达第i阶所需的最小花费。楼顶不是cost.size() - 1而是cost.size()。如果代码写出来,发现结果不对,就把dp数组打印出来看看和我们推导的数列是不是一致的。思路:一步一步推到得出递推公式就好写很多。跟斐波那契数一样的。dp[i]的定义为:第i个数的斐波那契数值是dp[i]

2024-04-09 21:58:55 644

原创 代码随想录算法训练营第三十四天|1005.K次取反后最大化的数组和、134.加油站、135.分发糖果

那么又是一个贪心:局部最优:只找数值最小的正整数进行反转,当前数值和可以达到最大(例如正整数数组{5, 3, 1},反转1 得到-1 比 反转5得到的-5 大多了),全局最优:整个 数组和 达到最大。那么如果将负数都转变为正数了,K依然大于0,此时的问题是一个有序正整数序列,如何转变K次正负,让 数组和 达到最大。贪心的思路,局部最优:让绝对值大的负数变为正数,当前数值达到最大,整体最优:整个数组和达到最大。思路:这题还算简单,每次都取最小的元素取反即可。总结:剩下的题只能明天补了。

2024-04-08 19:40:14 427

原创 代码随想录算法训练营第三十二天|122.买卖股票的最佳时机Ⅱ、55.跳跃游戏、45.跳跃游戏Ⅱ

思路:关键在于当前覆盖范围内的最大步数,以及何时更新下一步。LeetCode122.买卖股票的最佳时机Ⅱ。总结:贪心还是好难,没有套路可言。LeetCode45.跳跃游戏Ⅱ。LeetCode55.跳跃游戏。思路:覆盖的想法太巧妙了!

2024-04-08 15:18:05 451

原创 代码随想录算法训练营第三十一天|455.分发饼干、376.摆动序列、53.最大子数和

总结:贪心真的好难,我原本以为的不就是每次取最优吗?不就是局部最优推出全局最优吗?结果拿到题目根本不知道什么是局部最优?思路:遇到连续和为负数的情况就舍去,因为负数只会让后面加的数变小,但不是遇到负数就舍去,而是连续和。同时注意存一下每一次的最大值。思路:我采用的是优先用小饼干喂小孩。LeetCode455.分发饼干。LeetCode376.摆动序列。LeetCode53.最大子数和。

2024-04-07 21:05:51 264

原创 代码随想录算法训练营第三十天|51.N皇后、37.解数独

思路:大名鼎鼎的N皇后问题,拿下!之前的回溯都是对一维数组或者说是集合进行操作。N皇后问题相当于是对一个棋盘(也就是二维数组进行操作),本质都是一样的,具体写法更像判断回文字符那个。值得注意的是放置皇后判断是否合法的操作可以进行适当的剪枝。因为解数独找到一个符合的条件(就在树的叶子节点上)立刻就返回,相当于找从根节点到叶子节点一条唯一路径,所以需要使用bool返回值。因为如果一行一列确定下来了,这里尝试了9个数都不行,说明这个棋盘找不到解决数独问题的解!总结:清明假期过于放纵,恶补假期留下的。

2024-04-07 09:30:54 506

原创 代码随想录算法训练营第二十九天|491.非递减子序列、46.全排列、47.全排列Ⅱ

思路:这题相较于之前的题目再使用used数组就不太方便,因为要求题目给定的数组的子序列,所以数组的原有顺序不能动,那么就不再是相邻两元素的比较是否重复,这是要想达到树层去重,树枝不去重的操作,我们可以用一个set来实现,将每一层用过的放入集合中,每插入一个数前先去集合中看能否找到,若能找到就不插(因为是相同元素),注意需要每层维护一个set。思路:注意排列问题和组合问题的不同,不需要startIndex控制下一层取取过的元素,因为排列讲究顺序,顺序不一样就是不同的排列。这真的是学了新的忘了旧的。

2024-04-03 11:41:38 493

原创 代码随想录算法训练营第二十八天|78.子集、90.子集Ⅱ

思路:这题就是子集问题和组合总和Ⅱ的结合,既要收集每一个节点,又要对树层去重,同时注意树枝不去重。总结:只要认真学了前面的内容,今天的实在是简单了,全都是自己写的。思路:这题还蛮简单的,注意空集合怎么选取即可。这题其实没有终止条件也可以。LeetCode90.子集Ⅱ。LeetCode78.子集。

2024-04-02 10:51:56 332

原创 代码随想录算法训练营第二十七天|131.分割回文串、93.复原IP地址

思路:同上一题思路基本一致。只不过需要另设pointNum变量记录一下.的个数从而达到终止条件。这题巩固了insert和erase函数使用。思路:把回溯的树画出来就好很多。startIndex用来控制切割的位置。总结:受益匪浅,路还很长,继续努力。LeetCode131.分割回文串。LeetCode93.复原IP地址。

2024-04-01 21:01:49 660

原创 代码随想录算法训练营第二十五天|17.电话号码的字母组合、39.组合总和、40.组合总和Ⅲ

对于sum已经大于target的情况,其实是依然进入了下一层递归,只是下一层递归结束判断的时候,会判断sum > target的话就返回。这个index是记录遍历第几个数字了,就是用来遍历digits的(题目中给出数字字符串),同时index也表示树的深度。来看参数,参数指定是有题目中给的string digits,然后还要有一个参数就是int型的index。思路:同组合Ⅲ一样。注意题目说可以重复选,那么startIndex就应该每次都从i开始,而不再是i+1。题目链接:​​​​​​​​​​​​​​。

2024-03-31 12:17:24 567

原创 代码随想录算法训练营第二十四天|77.组合、216.组合Ⅲ

那么这一题for循环用来横向遍历集合中的元素(也就是n),递归用来纵向遍历树的深度(也就是k),这么说很绕,先尽量理解这吧。总结:算法课学过回溯,但是仅限于纸上谈兵,现在好后悔当初浪费的时光,到那时回头想想那是也不是说在闲着,只不过一直忙忙碌碌,一直碌碌无为罢了,现在在看回溯,既熟悉又陌生,尽快捡起来吧。举个例子,n = 4,k = 3, 目前已经选取的元素为0(path.size为0),n - (k - 0) + 1 即 4 - ( 3 - 0) + 1 = 2。第一步:确定函数返回值和参数类型。

2024-03-29 21:03:00 479

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

不敢说我二叉树的每一个题都掌握了,最起码我自己完完全全实现了二叉树的基本操作,这是我以前所没有实现的,是我实实在在的提升。印象最深刻的还是递归三部曲,几乎每一题都要用到了,还有二叉树的遍历顺序,前序遍历、中序遍历、后序遍历,更不能忘了层序遍历。还有求深度是自顶向下的,要用前序遍历,求高度是自底向上的,要用后序遍历。思路:确定好终止条件,当遇到root->val < low时,根据二叉搜索树的特性,满足条件的还可能在root->right中,同时记得直接将剪枝完的return回去即可。

2024-03-28 21:01:32 678 1

原创 代码随想录算法训练营第二十二天|235.二叉搜索树的最近公共祖先、701.二叉搜索树中的插入操作、450.删除二叉搜索树中的节点

思路:抓住二叉搜索树的特性,其左节点一定小于根节点,根节点一定小于右节点。如果当前节点的值同时大于p,q两节点的值时,说明p,q两节点的最近公共祖先一定在当前节点的左子树中,同理如果当前节点的值同时小于p,q两节点的值时,说明p,q两节点的最近公共祖先一定在当前节点的右子树中。思路:迭代法是我自己写出来的,不算难。总结:有了二叉搜索树的特性可以帮我们快速判断目标节点的方向,不需要去遍历整个树。LeetCode235.二叉搜索树的最近公共祖先。LeetCode450.删除二叉搜索树中的节点。

2024-03-27 21:16:51 391

原创 代码随想录算法训练营第二十一天|530.二叉搜索树的最小绝对差、501.二叉搜索树中的众数、236.二叉树的最近公共祖先

判断逻辑是 如果递归遍历遇到q,就将q返回,遇到p 就将p返回,那么如果 左右子树的返回值都不为空,说明此时的中节点,一定是q 和p 的最近祖先。总结:二叉搜索树与中序遍历有关,就相当于一个递增的数组。遇到在二叉搜索树上求什么最值啊,差值之类的,就把它想成在一个有序数组上求最值,求差值,这样就简单多了。后序遍历(左右中)就是天然的回溯过程,可以根据左右子树的返回值,来处理中节点的逻辑。思路:遇到这个题目首先想的是要是能自底向上查找就好了,这样就可以找到公共祖先了。,二叉搜索树可是有序的。

2024-03-26 21:28:12 606

原创 代码随想录算法训练营第二十天|654.最大二叉树、617.合并二叉树、700.二叉搜索树中的搜索、98.验证二叉搜索树

思路:基本原理就是构造二叉树的步骤。构造树一般采用的是前序遍历,因为先构造中间节点,然后递归构造左子树和右子树。样例中最小节点 可能是int的最小值,如果这样使用最小的int来比较也是不行的。这就决定了,二叉搜索树,递归遍历和迭代遍历和普通二叉树都不一样。总结:坚持打卡好像也没有那么难,真心觉得递归越来越得心应手了。要知道中序遍历下,输出的二叉搜索树节点的数值是有序序列。LeetCode700.二叉搜索树中的搜索。思路:没啥思路,就直接写不就好了?思路:二叉搜索树就要想到中序遍历!

2024-03-25 21:00:54 532

原创 代码随想录算法训练营第十八天|513.找树左下角的值、112.路径总和、113.路径总和Ⅱ、106.从中序与后序遍历序列构造二叉树、105.从前序与中序遍历序列构造二叉树

那么如何找最左边的呢?可以使用前序遍历(当然中序,后序都可以,因为本题没有 中间节点的处理逻辑,只要左优先就行),保证优先左边搜索,然后记录深度最大的叶子节点,此时就是树的最后一行最左边的值。思路:给中序和后序序列手画二叉树肯定是会的,关键在于找到根节点划分新的中序和后序序列。第四步:切割中序数组,切成中序左数组和中序右数组 (顺序别搞反了,一定是先切中序数组)如果使用递归法,如何判断是最后一行呢,其实就是深度最大的叶子节点一定是最后一行。思路:第一眼就有想用层序遍历的冲动,找到最后一层的第一个节点即可。

2024-03-24 20:36:51 462 1

原创 代码随想录算法训练营第十七天|110.平衡二叉树、257.二叉树的所有路径、404.左叶子之和

总结:总算追上进度了,但是质量感觉落下了。迭代法没看不说,递归法掌握的也不是很好,递归三部曲我懂,一到自己写的时候,具体细节方面总还是会出错。求深度可以从上到下去查 所以需要前序遍历(中左右),而高度只能从下到上去查,所以只能后序遍历(左右中)这道题目要求从根节点到叶子的路径,所以需要前序遍历,这样才方便让父节点指向孩子节点,找到对应的路径。在这道题目中将第一次涉及到回溯,因为我们要把路径记录下来,需要回溯来回退一个路径再进入另一个路径。思路:第一次接触递归,有点懵,感觉很神奇。

2024-03-22 21:23:30 401 1

原创 代码随想录算法训练营第十六天|104.二叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

首先我们要区分一下高度和深度这两个概念,对于一棵二叉树来说,深度是自顶向下的,也就是从当前节点到叶子节点,而高度是自底向上的,也就是从叶子节点到当前节点。区分了这两者之后,二叉树的最大深度就可以看作根节点的高度,求高度我们一般用后序遍历。那么使用后序遍历,其实求的是根节点到叶子节点的最小距离,就是求高度的过程,不过这个最小距离 也同样是最小深度。完全二叉树只有两种情况,情况一:就是满二叉树,情况二:最后一层叶子节点没有满。本题依然是前序遍历和后序遍历都可以,前序求的是深度,后序求的是高度。

2024-03-22 17:16:17 424 1

原创 代码随想录算法训练营第十五天|102.二叉树的层序遍历(十个题)、226.翻转二叉树、101.对称二叉树

总结:不知道补第几天的任务了,因为层序遍历那十道题加上这周一些乱七八糟的事打乱了我原本的计划,已经在尽力找补了。思路:用后序遍历(其实我自己感觉用层序遍历+栈也能实现,只不过我自己实现的时候老是有问题),明确熟悉递归三部曲。LeetCode116.补充每一个节点的下一个右侧节点指针、117.补充每一个节点的下一个右侧节点指针Ⅱ。本题遍历只能是“后序遍历”,因为我们要通过递归函数的返回值来判断两个子树的内侧节点和外侧节点是否相等。但都可以理解算是后序遍历,尽管已经不是严格上在一个树上进行遍历的后序遍历了。

2024-03-22 11:59:02 1086 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除