- 博客(7)
- 收藏
- 关注
原创 代码随想录训练营第十七天|
2 明确终止条件:如果当前节点是叶子节点的话进一步考虑,如果当前深度 大于 记录的最大深度则说明有可能是最深的层的最左边的节点,记录到result中去。思路:树左下角的值指的是最后一行最左边的节点。通过在后序遍历数组中找到当前根节点,利用根节点在中序遍历数组中找到左右子树的中序遍历数组,利用左右子树的中序遍历数组的个数找到左右子树的后序遍历数组。思路:每一棵树对应的后序遍历数组的最后一个节点一定是根节点。每一棵树对应的中序遍历中根节点左边的是左子树的中序遍历,根节点右边的是右子树的遍历。
2023-12-17 23:43:48 46 1
原创 代码随想录训练营第十六天|LeetCode104.二叉树的最大深度、LeetCode111.二叉树的最小深度、LeetCode222.完全二叉树的节点个数
判断当前树是不是满二叉树,求左子树最左边的深度和右子树最右边的深度,如果两个深度相等,说明当树是满二叉树,返回2^depth - 1。3 递归的等价关系:如果两边深度不相等,则当前树节点的个数 = 1 + 左子树节点的个数 + 右子树节点的个数。3 递归的等价关系:当前树的节点个数 = 1 + 左子树节点的个数 + 右子树节点的个数。节点的高度是指从该节点到叶子节点的最长简单路径的条数(默认叶子节点的高度为0)节点的深度是指从根节点到该节点的最长简单路径边的条数(默认根节点的深度为0)
2023-12-15 19:29:32 44
原创 代码随想录训练营第五天|LeetCode.有效的字母异位词、LeetCode349.两个数组的交集、
你可以假设每种输入只会对应一个答案。但是,数组中同一个元素在答案里不能重复出现。中每个字符出现的次数都相同,则称。输出结果中的每个元素一定是。题目:编写一个算法来判断一个数。整数,并返回它们的数组下标。你可以按任意顺序返回答案。,编写一个函数来判断。题目:给定一个整数数组。题目:给定两个字符串。,请你在该数组中找出。
2023-12-04 23:50:53 43
原创 代码随想录算法训练营第四天|LeetCode24.交换两两链表中的节点、LeetCode19.删除链表的倒数第N个节点、LeetCode160.链表相交、LeetCode142.环形链表
代码中有个错误:return的是head而不是dummyHead -> next,那么要dummyHead有什么用呢?在 C++ 中,最好尽量减少不必要的动态内存分配和释放,以避免潜在的内存泄漏或错误。题目:给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。其中的new和delete是多余的,因对应的变量的作用域只在while里,生命周期是一次while循环。,返回链表开始入环的第一个节点。个结点,并且返回链表的头结点。
2023-12-03 22:36:52 51
原创 代码随想录算法训练营第三天| LeetCode203
nullptr && q -> vall == val)中q!= nullptr是为了避免对空指针内部进行访问,空指针下没有val域。while()循环删除头节点用的很好,没想到,于是我把删除头节点的操作放到最后;时改变头指针,不是改变头指针的内容。节点的更新方法不是p++;而是p = p -> next;在while循环中需要temp记录时临时申请,然后再删除。,请你反转链表,并返回反转后的链表。题目:给你一个链表的头节点。,请你删除链表中所有满足。题目:给你单链表的头节点。
2023-12-01 22:33:01 46
原创 代码随想录算法训练营第二天 | LeetCode977.有序数组的平方、LeeCode209.长度最小的子数组、59. 螺旋矩阵 II
3 缩小左边界:一旦窗口内元素之和大于等于给定值,开始尝试缩小窗口的左边界,即增加 left ,直到窗口内的元素和小于给定的值。2 移动右边界:不断增加 right ,直到当前窗口的元素之和大于等于给定的值,或者 right 达到数组的末尾。1 初始化窗口:设置两个指针 left 和 right ,他们表示窗口的左边界和右边界。4 重复2合3:重复以上步骤,直到 right 达到数组的末尾。在整个过程中,动态维护窗口,找到满足条件的子数组。很明显数组中间元素的数值小,数组两边的数值大。
2023-11-30 20:56:14 89
原创 代码随想录算法训练营第一天|LeetCode704.二分查找、Leetcode27.移除元素
由于地址空间的连续性,在删除和添加元素是,会对后边的所有元素造成影响,需要重新覆盖其后的所有元素。注意:一开始的右边界 int right = nums.size() 是超出数组长度的!的元素,并返回移除后数组的新长度;暴力解法:首先查找需要删去的元素,然后使用全覆盖实现该元素的删除。你不需要考虑数组中超出新长度后面的元素。数组的在内存空间上是连续的,同时每一个元素的数据类型相同。很有意思的暴力解法,其中的数组上限是动态变化的!二分查找针对有序的不重复的一组数据。二维数组的地址空间也是线性连续的。
2023-11-29 23:59:08 62 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人