单向链表和双向链表的一些基本算法

单向链表头插尾插

单向链表的销毁与反转

反转原理:将头节点与后面的节点分开,然后从第一个节点开始对每个节点使用头插法

冒泡排

选排

链表环:

判断是否有环:弗洛伊德快慢指针(快指针一般是慢指针的2倍,差为自然数增长)检测法,如果快指针在遍历过程中遇到了慢指针,则有环存在

判断环入口:在相遇点,令慢指针回到头节点,然后两个指针以相同的速度移动,再次相遇点即为入口;

链表环好处:1.链表环允许从某个节点开始无限循环访问,这在需要持续遍历数据的场景中非常有用,比如任务调度、游戏循环等。

2.如果链表中有多个节点需要共享相同数据,使用环可以避免创建多个节点,节省内存。

3.对于需要处理持续流入数据的应用,环可以有效地管理数据,避免频繁的内存分配和释放。

相关推荐
Darling噜啦啦几秒前
二叉树与递归算法实战:从树结构到 LeetCode 爬楼梯,一文吃透前端数据结构与递归思维
前端·javascript·数据结构
Irissgwe6 分钟前
算法的时间复杂度和空间复杂度
数据结构·c++·算法·c·时间复杂度·空间复杂度
随意起个昵称7 分钟前
区间dp-基础题目3(永别)
c++·算法
周末也要写八哥13 分钟前
有向图Hierholzer算法的另一种实现
算法
bIo7lyA8v16 分钟前
算法调优中的性能回归与基准测试分析的技术8
算法·数据挖掘·回归
有点。17 分钟前
C++贪心算法二(练习题)
c++·算法·贪心算法
西安邮电大学22 分钟前
贪心算法详细讲解
java·后端·其他·算法·面试
开源Z22 分钟前
LeetCode 135 · 分发糖果:两次扫描,先左后右取最大
算法·leetcode
退休倒计时34 分钟前
【每日一题】LeetCode 19. 删除链表的倒数第 N 个结点 TypeScript
leetcode·链表·typescript
装不满的克莱因瓶1 小时前
掌握生成对抗网络(GAN)的优化目标与评估指标——从博弈函数到生成质量衡量体系
人工智能·python·深度学习·算法·机器学习