实现单链表的删除操作
时间: 2024-09-25 11:09:35 浏览: 47
在实现单链表的删除操作时,我们通常会遇到两个基本的情况:删除指定节点和删除头节点。以下是删除一般节点的操作步骤:
1. **删除指定节点**:
- 定义一个指向当前节点指针`current`和一个前驱节点指针`previous`。
- 遍历链表找到目标节点,将`current`指向要删除的节点的下一个节点。
- 如果`current`不是头节点,更新前驱节点`previous`的`next`指向`current->next`;如果`current`是头节点,那么需要调整头节点为`current->next`。
- 释放`current`占用的内存。
2. **删除头节点**:
- 特殊处理,因为头节点没有前驱节点。创建一个新的头节点,将其`next`指向原头节点的下一个节点,然后释放原头节点的内存。
下面是一个简单的Python伪代码示例:
```python
class Node:
def __init__(self, data=None, next=None):
self.data = data
self.next = next
def delete_node(head, key):
if not head: return None # 空链表
if head.data == key: # 删除头节点
Node.next = head.next
del head
return Node.next
current = head
while current.next and current.next.data != key:
current = current.next
if current.next: # 删除普通节点
current.next = current.next.next
return head
```
阅读全文