在C语言中,要重置链表,可以按照以下步骤进行操作:
以下是一个示例代码,演示如何在C语言中重置链表:
#include <stdio.h>
#include <stdlib.h>
// 定义链表节点结构
struct Node {
int data;
struct Node* next;
};
// 重置链表函数
void resetLinkedList(struct Node** head) {
struct Node* temp = *head;
struct Node* nextNode;
while (temp != NULL) {
nextNode = temp->next;
temp->next = NULL;
free(temp);
temp = nextNode;
}
*head = NULL;
}
// 测试代码
int main() {
// 创建链表
struct Node* head = (struct Node*)malloc(sizeof(struct Node));
struct Node* second = (struct Node*)malloc(sizeof(struct Node));
struct Node* third = (struct Node*)malloc(sizeof(struct Node));
head->data = 1;
head->next = second;
second->data = 2;
second->next = third;
third->data = 3;
third->next = NULL;
// 打印原始链表
printf("原始链表:\n");
struct Node* temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
// 重置链表
resetLinkedList(&head);
// 打印重置后的链表
printf("重置后的链表:\n");
temp = head;
while (temp != NULL) {
printf("%d ", temp->data);
temp = temp->next;
}
printf("\n");
return 0;
}
这段代码首先创建了一个简单的链表,然后调用resetLinkedList
函数重置链表。最后,通过遍历链表并打印节点的数据,可以观察到链表已被成功重置为空链表。
请注意,这只是一个简单的示例,实际应用中可能需要根据具体情况进行适当的修改和扩展。
领取专属 10元无门槛券
手把手带您无忧上云