| 上一篇 | 下一篇 |
|---|---|
| 单链表 |
单链表的两个核心缺点(引入循环/双向链表)
单链表、循环链表和双向链表的主要区别源于单链表的两个核心缺点:
-
只能单向遍历,无法反向访问
单链表每个节点只有指向后继的指针,若要访问前驱节点,必须从头重新遍历,效率低。
→ 双向链表 通过增加一个指向前驱的指针(
prev),支持前后双向遍历,插入/删除时可直接定位前驱,提升操作效率。 -
尾部与头部割裂,无法自然循环访问
单链表尾节点指向
NULL,若需从尾回到头(如约瑟夫问题、轮询调度),必须额外判断并跳转。→ 循环链表 将尾节点的
next指回头节点(或首元素),形成闭环,任意位置均可遍历整个链表,简化循环场景逻辑。
双向循环链表 可以结合双向链表和循环链表两者的优势,但空间开销更大。
实际应用中,单链表结构简单、内存省,适合只在头部/已知位置操作的场景;
而需要频繁反向访问或循环处理时,则选用双向或循环结构。