C语言如何初始化清空一个链表
时间: 2024-11-18 07:16:28 浏览: 14
在C语言中,初始化和清空链表通常涉及到动态内存分配以及指针操作。以下是两个相关的步骤:
1. **初始化一个空链表**:
如果是指静态定义的链表,可以一开始就声明它为空,比如:
```c
struct Node {
int data;
struct Node* next;
} head = {0, NULL}; // 初始化头节点data为0,next指向NULL
```
对于动态创建的链表,你可以这样新建一个头结点并设置其next指针为NULL:
```c
struct Node* head = malloc(sizeof(struct Node)); // 分配内存
if (head) {
head->data = 0; // 初始化数据域为0
head->next = NULL; // 初始化下一个节点地址为NULL
}
```
2. **清空链表**:
清空链表意味着删除链表中的所有节点。一种常见的方法是从头节点开始遍历,逐个删除节点:
```c
void clearList(struct Node* head) {
struct Node* current = head;
while (current != NULL) {
struct Node* temp = current;
current = current->next;
free(temp); // 释放当前节点的内存
}
head = NULL; // 更新头节点为NULL,表示链表为空
}
```
这里假设`free()`函数已经正确处理了内存释放。
阅读全文