如何在链表中删除结点
时间: 2024-01-27 10:07:28 浏览: 174
C语言实现带头结点的链表的创建、查找、插入、删除操作
在链表中删除节点的方法有多种。以下是两种常见的方法:
1. 删除指定位置的节点:首先,需要遍历链表,找到要删除的节点的前一个节点。然后,使前一个节点的next指针指向要删除节点的下一个节点,这样就将要删除的节点从链表中移除了。最后,释放被删除节点的内存空间。
代码示例:
```
Node *p, *prev;
int pos = 3; // 假设要删除的位置是3
int count = 1;
for (p = head, prev = NULL; p != NULL && count < pos; count++) {
prev = p;
p = p->next;
}
if (p != NULL) {
if (prev != NULL) {
prev->next = p->next;
} else {
head = p->next;
}
free(p);
}
```
2. 删除指定值的节点:同样需要遍历链表,找到要删除的节点。如果找到了与给定值相等的节点,则将其从链表中删除。
阅读全文