自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

qq_43776408的博客

我喜欢当程序员,或许这只是我的兴趣而不是我的工作

  • 博客(936)
  • 收藏
  • 关注

原创 leetcode:判断给定的序列是否是二叉树从根到叶的路径

就是上面的例3,这时候i就有可能越界了,所以要在开头加上一句if i==n。这题按理说不是中等题。

2024-12-26 15:00:22 157

原创 leetcode:找出克隆二叉树中的相同节点

【代码】leetcode:找出克隆二叉树中的相同节点。

2024-12-26 14:35:02 219

原创 leetcode:二叉搜索树的范围和

【代码】leetcode:二叉搜索树的范围和。

2024-12-25 23:09:11 174

原创 leetcode:递增顺序搜索树

我是新建节点,即构造新树,可结果却返回原来的root。得有一个全局变量root,用于记录新树的根节点。、那就输出一模一样了。

2024-12-24 17:06:20 206

原创 leetcode:合并二叉树

其中有一个有,那么就返回有的,这是比较难的。如果某一位置都有,那很简单,值相加即可。我的思路没在原枝上合并、新建节点合并。我一开始思路是还得判断是左枝还是右枝。然后根据此合并到不同位置,不必这样。如果都没有返回null。

2024-12-24 16:12:31 206

原创 leetcode:路径之总和 II

思路就是遍历,路径当成参数传给下一个。一个是不是找一个,而是找全部。还有就是要记录路径好返回。这个题和I其实差不多。

2024-12-21 11:10:04 155

原创 leetcode:嵌套列表加权和 II

只不过多了个计算最大深度的环节。

2024-12-19 11:19:12 137

原创 leetcode:嵌套列表加权和

你把他想象成多叉树就可以了,列表里每一个元素都是多叉树一个节点。遇到列表的,肯定有权,那用一个变量记录权值即可。列表里面还有列表,里面还有列表。遇到值的,直接相加求和。

2024-12-19 10:39:09 140

原创 leetcode:N叉树的最大深度

记住多叉树的遍历,for循环。

2024-11-26 22:37:35 160

原创 leetcode:二叉树中的最大路径和

以-10节点为例,求出左枝的最大和,右枝的最大和。然后加上本节点,不断更新max值即可。这题我的思路和答案一样。

2024-11-20 23:04:45 149

原创 leetcode:翻转等价二叉树

其实没必要,题目是返回boolean,就两种情况,要么换,要么不换。那么换 || 不换 最后结果为true即可。如果其子节点值不等于root2子节点值。对root1进行反转,然后递归。这个题我一开始的思路就是。改变了root1结构。

2024-11-20 22:55:12 233

原创 leetcode:纠正二叉树

你记住,void你所做的都会被撤销,除非是全局变量。所以你写的这段程序无论怎样,都不会改变root。这题从右往左遍历,同时记录即可。

2024-11-20 22:16:13 170

原创 leetcode:克隆含随机指针的二叉树

其实就是从最简单的构造二叉树升级为构造有3个分支的二叉树。

2024-11-20 21:27:54 233

原创 leetcode:删点成林

所以伪代码肯定要有一个布尔型记录是否存在删除数组中。这时候你在root.val=5,你会惊讶的发现列表里的也跟着改了。比如你向列表中添加了root。意味着return null。还是得多思考,多画多用纸写。这题考察了一个我没注意的。3要删除,意味着什么?

2024-10-31 23:47:44 175

原创 leetcode:最大二叉树II

因为是加到末尾们,所以我想的是从后向前找到第一个比它大的数,然后加到它右边。题目说了,新加的数是在右边,所以要是新的数小了,肯定是加在右边。剩下的放到左边,可能还要牵扯到哈希表数组啥的。这道题我就的可以列为经典的分解法思路题。大了,就整个树都是他的左子树。说明对分解法还是没理解透彻。还是得读题,有可能题没读懂。我当时没想到这种方法。

2024-10-30 22:45:55 132

原创 leetcode:所有可能的真二叉树

然后呢,左边节点数量和右边节点数量是有关系的,对于每一个情况,肯定要利用那两个for循环吧。所以是一个for循环控制i和j关系的,另2个是负责取拼接的。你在纸上画,首先肯定有2个for循环吧,负责拼接的。

2024-10-20 10:49:58 213

原创 leetcode:验证二叉树的前序序列化

第一个非空结束后还有2个位置,那么接下来两个空的占了,又来了一个非空的,没有位置了,返回false。比如遇到非空的,那么占一个位置,但额外产生2个位置。可以是任意的,哪怕是中序序列化结果,后序序列化结果。你只要判断给你的是不是一种可能的前序序列化结果。判断这个字符串和preorder是否一样即可。就是把preorder字符串构成二叉树。这题按照序列化反序列化思路很好做。再把这个二叉树重新序列化成字符串。遇到空的,直接占一个位置。还有一个比较巧的思路。

2024-10-17 23:55:04 205

原创 leetcode:二叉树中的链表

分模块编程,清晰明了。

2024-10-06 11:39:11 269

原创 leetcode:另一颗树的子树

之前写过判断两棵二叉树是否相同的代码。思路什么的还是很好想的。

2024-10-06 10:41:05 246

原创 leetcode:从二叉树一个节点到另一个节点每一步的方向

而StringBuilder你可以看为全局变量,哪怕return了,还是上一次递归的值。比如第一回合找公共祖先,第二回合就是找开始节点递归,第三回合是找结束节点递归。同时作为参数传递,有递归前情况下,String会恢复之前的。不过这题要注意String和StringBuilder。但是很遗憾,通过了一大半用例,好像超出内存限制了。答案的方法,和你思路其实差不多。可能是,我的递归了很多回合。这个题要用的最近公共祖先。

2024-10-05 16:29:09 216

原创 leetcode:二叉树的最近公共祖先

你可以先这么想,如果让你在二叉树中找一个值,怎么找?

2024-10-05 15:06:11 183

原创 leetcode:检查两颗二叉表达式树是否等价

请问两种情况一样吗?traverse都是void,里面都要改变值。没必要两个哈希表,还有两个traverse函数。不一样,第一种不会改变i的值,第二种会的。直接把哈希表当作参数传进去就可以了。这题遇到一个你有点疑惑的。看起来难,但经不起推敲。这题你写的有点复杂了。

2024-10-05 14:11:28 276

原创 leetcode:丢失的数字

就是比如9,1,2等等,第一个数字9映射到9位置,改为-1,然后不断接力。最后遍历一遍找到不是-1那个位置就是我们要的。这个题我开始想的是比较高级的方法,映射。方法很多,以下注释写了很多。

2024-10-05 13:11:20 186

原创 leetcode:二叉树着色游戏

我想的是只要x的父节点开始不包括x的子节点,剩下所有节点之和如果大于x的子节点之和,就可以了。但实际上返回true,因为y可以选2,虽然是子节点然后选3就赢了。可以分为三部分,x的左节点个数,右节点个数,父节点以外节点个数。也就是说x选好后,不一定看父节点,我们可以从x的子节点开始选。比如这种情况,1,2,null,3,null,x=1,那好。然后三者对比,只要其中一个大于另外两个之和即可。按照第二种思路写,哇,还是没通过,有点小崩。和我想的第二种思路很接近了。这个题说简单确实简单。

2024-09-30 15:59:04 372

原创 leetcode:字典序排数

原理啥的其实一样的,只不过一个没递归一个有递归。其实你可以联想那个有一本书讲邻居芒果问题。原理都是对于每一个人都要查他的邻居。这是一道多叉树的DFS遍历。都可以用DFS和BFS做。

2024-09-28 13:52:38 234

原创 leetcode:打开转盘锁

考虑一种情况,比如0000,转一下有8种可能(每一位向上或向下)先写出最基础的,就是穷举有多少种可能性。因为是从起点到终点的最短路径。

2024-09-28 12:54:49 279

原创 leetcode:在受污染的二叉树中查找元素

然后find函数里直接查hashset有没有即可。思路就是这题利用了完全二叉树编号性质。同时用一个hashset记录值。先把二叉树值都遍历填充一边。这道题是个设计类的题。函数需要被调用很多次。

2024-09-26 16:10:43 166

原创 leetcode:二叉树寻路

这个题要求某个数位于区间的最大值和最小值,从而求出他的对称值。这样的话我们很容易得到11位于16和8之间。然后求11的对陈数就是15-11+8=12。比如对于11这个数,他的二进制是1011。和二叉树关系说有有一点,说没有也没有。我们现在想取其二进制最高位1怎么办?这个题思路还是可以想到的。学到一个二进制新方法。

2024-09-26 15:39:45 239

原创 leetcode:找树左下角的值

【代码】leetcode:找树左下角的值。

2024-09-23 15:57:49 247

原创 leetcode:连续的子数组和

不知道这个定理怎么用,这个题无法高效解决。但是要用到一个定理,同余定理。这题说他难吧,真不难。

2024-09-23 15:24:45 251

原创 leetcode:和为K的子数组

不过你要记住一点,前缀和不一定非要用数组。

2024-09-19 16:45:21 206

原创 leetcode:路径总和 III

判断到达该节点后有没有等于target的,遍历数组,逐次相减判断。就是前缀和,每到一个节点,计算该节点到开始那个节点的和。这题我刚开始写,没有完全通过,通过了109/116个。比如上述图,到了左边第一个3节点,此时前缀和数组。你的思路都是对的,运行时间也是打败绝大多数。差不多是这样的,10,15,18。因为你在代码里加了个break。思路啥的基本正确,细节出问题。你知道你为啥做不出来吗?让他弄完,别中途退出来了。就把那个break去了。

2024-09-19 16:06:18 206

原创 leetcode:找到二叉树中最近的右侧节点

找到该节点记录下其层,然后下次遍历到该层就是结果。当然也可以前中后遍历。

2024-09-09 10:21:08 201

原创 leetcode:寻找所有的独生节点

【代码】leetcode:寻找所有的独生节点。

2024-09-09 10:11:08 179

原创 leetcode:统计二叉树中的好节点的数目

和答案思维一样的,但没考虑到把上一个最大值当作参数。但考虑到节点的左最大值和右最大值不能共通。我的思路就是用一个遍历记录沿途最大值。所以我用了一个变量记录了上一个最大值。

2024-09-08 11:30:08 202

原创 leetcide:祖父节点值为偶数的节点和

就是遍历过程中遇到偶数值节点时,然后累加他的孙子节点即可,就这么简单。不过有个问题,偶数值节点还不一定有子节点,更别说有孙子节点了。

2024-09-07 23:12:24 205

原创 leetcode:路径总和 IV

所以定义一个15长数组,通过计算得到每一个节点值,将这些值根据哈希表放到数组对应位置。比如215这个数,求得21,查哈希表21-索引1位置处,所以把5这个数放到索引1处。然后根据这个数组构造二叉树。因为题目说了,深度小于5。然后遍历这颗二叉树即可。

2024-09-06 16:32:48 266

原创 leetcode:二叉树的垂序遍历

一个是可以通过类来存每个节点信息,一个是排序技巧。这个题是先把所有节点的坐标求出来存起来。最后挨个存,思路确实简单。思维上很像,都是标记法。这个题和垂直遍历很像。

2024-09-05 22:07:02 264

原创 leetcode:翻转二叉树以匹配先序遍历

针对左节点就行了,左节点不同换,右节点只要不同,直接false。思路啥的和答案很接近。

2024-09-05 20:56:19 223

原创 leetcode:在二叉树中增加一行

只是针对某一层的,结束后后面没必要在遍历了。所以直接在if里return即可。

2024-09-03 22:48:06 199

空空如也

空空如也

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

TA关注的人

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