单链表的缺陷
在各个单链表中都有各自不同的缺陷:
- 在尾部插入或删除数据时间复杂度为O(N),效率低下;
- 在pos位置前插入、删除数据时间复杂度为O(N),效率低;
- 进行插入或删除数据时,可能会改变头节点,所以需要用到二级指针,比较麻烦。
那么有没有比较完美的链表呢?
当然有→带头+双向+循环链表,完美解决单链表不同缺陷。
带头双向循环链表

带头双向循环链表指的是:具有哨兵位头结点、每个节点中都存储了后一个节点和前一个节点的地址、头结点存储了尾结点的地址、尾结点存储了头结点地址,这样的一种结构的链表。
虽然它的结构看起来复杂,但是在链表中却是最简单效率最高的一种。
带头双向循环链表的实现
1.节点结构
比较单链表而言,带头双向循环链表多出一个prev指针,指向前一个节点。
typedef int LTDataType;
typedef struct ListNode
{
LTDataType data; //用于

本文探讨单链表的不足,引入带头双向循环链表,阐述其结构优势,包括如何实现初始化、动态开辟节点、尾插尾删、头插头删、查找及销毁等操作,以提升链表操作的效率。
最低0.47元/天 解锁文章
1105

被折叠的 条评论
为什么被折叠?



