首页
AI Coding
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
408数据结构算法题
风吹斜刘海
创建于2023-09-16
订阅专栏
本专栏用来整理计算机考研408数据结构算法大题
等 1 人订阅
共17篇文章
创建于2023-09-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
两两交换链表中的结点-力扣24
两两交换链表中的结点-力扣24 初始时1->2->3->4->5->6->7 递归出口:没有结点或只有一个结点 初始时交换1->2的位置,最终2会成为返回的首结点,1用来指向后面的结点。之后递归式的处
合并零之间的节点-力扣2181
合并零之间的节点-力扣2181 快慢指针同时向后遍历,快指针记录sum值,最后返回的结点值由慢指针保存。 为了能够在最后修改链表的尾巴,所以追踪的是快慢指针的next 时间复杂度:$O(n)$ 空间复
奇偶链表-力扣328
奇偶链表-力扣328 两种情况: 第一种: 1 2 3 4 5, 最后一个结点是odd 第二种: 1 2 3 4 5 6, 最后一个结点是even 用evenHead标记偶子列的开始结点,head可以
二叉树的前序遍历-力扣144
二叉树的前序遍历-力扣144 二叉树的先根遍历。遇到空指针不处理,先处理当前结点,之后递归地处理左孩子,右孩子,根左右。 时间复杂度:$O(n)$ 空间复杂度:平均$O(logn)$,最坏$O(n)$
二叉搜索树中第K小的元素-力扣230
二叉搜索树中第K小的元素 根据bst的性质,通过中序遍历可以得到这棵bst的有序数列。将这个数列保存下来,样例中的bst元素均不重复,则直接输出下标为k-1的数组元素即为该bst中第K小的元素。 时间
左叶子之和-力扣404
左叶子之和-力扣404 先根遍历找到所有左叶子结点并将其值全部加起来即可。 需要注意的是,判断一个叶子结点是否是叶子结点无法直接通过他自己就得到,应该由其父结点来判断 时间复杂度: $O(n)$ 空间
路径总和-力扣112
路径总和-力扣112 先根遍历整棵树,访问当前结点时判断当前结点是否是叶子结点,如果是,则判断其路径上的值是否等于targetNum,如果不是则继续向下传递路径值。 时间复杂度:$O(n)$ 空间复杂
求根结点到叶结点数字之和-力扣129
求根结点到叶结点数字之和-力扣129 无脑暴力 dfs向下深搜,记录当前结点的所代表的数值,向下一直统计到叶子结点,叶子结点的的num值即为该路径上的数字之和。最后再退递归栈,一路返回直至所有的值全部
找到小镇的法官-力扣997
找到小镇的法官 依据题意,只需找到入度为n-1,出度为0的结点,该结点即为法官。另开两个结点分别记录各顶点的出度和入度,再对有向图邻接表进行遍历,将结果填入出度和入度数组中即可得到所有顶点的出度和入度
寻找图中是否存在路径-力扣1971
寻找图中是否存在路径-力扣1971 最简单的一道关于图的题目。存储方式为邻接表。 直接广度优先搜索BFS,标记从起点出发能够到达的结点,最后看目标结点是否被标记过即可得到是否存在路径。 图的存储方式为
二叉搜索树的最近公共祖先-力扣235
二叉搜索树的最近公共祖先-力扣235 用两个指针分别标记从根节点去往这两个结点路径,根据BST的性质,同时向下搜索。当两条路径出现分岔时,出现分岔的这个结点即为最近公共祖先。 时间复杂度:平均$O(l
翻转二叉树-力扣226
翻转二叉树-力扣226 采用dfs来进行深搜,先直接考虑在叶子结点处先进行翻转,然后依次向上进行翻转。 时间复杂度:$O(n)$。遍历了所有的结点,并在常数级的时间内完成了左右结点的交换。 空间复杂度
课程表-拓扑排序-力扣207
课程表-力扣207 拓扑排序模板-深度搜索dfs版解法 核心思想,从某个点出发向下一直深搜,确保没有环即可确定存在拓扑序列
二叉树的最小深度-力扣111
二叉树的最小深度-力扣111 广度优先遍历BFS整棵树,即一层一层的检查。第一个检查出存在叶子结点的层的深度即为这棵二叉树的最小深度。
二叉树的层次遍历-力扣102
二叉树的层次遍历 核心思想:通过一个队列保存每一层的所有结点,之后逐层遍历,并且将每个结点的左右儿子结点存入队中。
平衡二叉树-力扣110
力扣官方解法 通过递归的方式遍历每一个结点,确保所有结点的平衡因子全部符合要求。 时间复杂度$O(n^2)$
中序遍历二叉树-力扣94
中序遍历二叉树,直接递归 左、根、右 注意在传参数时,先把结点传下去,再在下层函数调用中判断该结点是否为空和进行接下来的系列操作