c语言中单链表的销毁与清空
时间: 2024-10-25 17:17:36 浏览: 24
数据结构-C语言实现单链表-数据结构学习
在 C 语言中,单链表的销毁和清空通常涉及以下几个步骤:
1. **销毁节点**:对于链表中的每个节点,需要释放其占用的内存空间,包括数据域和指向下一个节点的指针。如果链表中有头结点,也需要将其设为 NULL,表示链表已经结束。
```c
void destroy_list(Node* head) {
Node* current = head;
while (current != NULL) {
// 保存当前节点的下一个节点
Node* next = current->next;
// 释放当前节点的内存
free(current);
// 更新当前节点为已释放的节点
current = next;
}
}
```
2. **清空链表**:除了销毁所有节点,还需要将链表头指针设置为空,表示链表为空。这一步并不释放内存,因为只是改变了头指针的内容。
```c
void clear_list(Node** head_ref) {
if (*head_ref) {
destroy_list(*head_ref); // 先销毁节点
*head_ref = NULL; // 然后置空头指针
}
}
```
阅读全文