链表的特点
时间: 2025-10-21 21:58:22 AIGC 浏览: 2
链表具有以下特点:
- **动态性**:链表的大小可以动态增长或缩小,节点能在运行时动态分配内存,无需预先定义固定大小,适合存储大小不固定的数据[^2]。
- **非连续存储**:链表的节点在内存中并非连续存储,每个节点通过指针连接到下一个节点[^2]。
- **插入和删除效率高**:在已知某个节点位置的情况下,插入或删除操作的时间复杂度为O(1),只需调整指针即可[^2]。
- **访问效率低**:链表不支持随机访问,要访问第n个节点,必须从头节点开始遍历,时间复杂度为O(n)[^2]。
- **类型多样**:
- **单向链表**:每个节点只包含指向下一个节点的指针[^2]。
- **双向链表**:每个节点包含指向前一个和后一个节点的指针[^2]。
- **循环链表**:链表的尾节点指向头节点,形成一个环,其中双循环链表的第一个节点的前驱指针指向最后一个节点,最后一个节点的后继指针指向第一个节点,可双向遍历,能在任意位置高效增删节点[^2][^3]。
### 代码示例(Python实现单向链表)
```python
class Node:
def __init__(self, data):
self.data = data
self.next = None
class LinkedList:
def __init__(self):
self.head = None
def append(self, data):
new_node = Node(data)
if not self.head:
self.head = new_node
return
last_node = self.head
while last_node.next:
last_node = last_node.next
last_node.next = new_node
def display(self):
elements = []
current = self.head
while current:
elements.append(current.data)
current = current.next
print(" -> ".join(map(str, elements)))
llist = LinkedList()
llist.append(1)
llist.append(2)
llist.append(3)
llist.display()
```
阅读全文
相关推荐



















