gpt4 book ai didi

c - 链接列表中的元素没有被删除

转载 作者:行者123 更新时间:2023-11-30 19:22:15 24 4
gpt4 key购买 nike

struct node {  
struct node *next;
int data;
} *head;

将元素插入链表后,我使用此删除函数来删除链表的元素,但程序卡住了。我不知道哪里出错了。请帮助我。

void delete(int num1) {
struct node *del ,*prev_node;
del = head;

if(del == NULL) {
printf("\n The list is empty,cant delete element");
} else {
while(del != NULL) {
if(del->data == num1) {
if(del == head) {
head = del->next;
free(del);
} else {
prev_node->next = del->next;
free(del);
}
} else {
prev_node = del;
del = del->next;
}
}
}
}

最佳答案

释放 del 后永远不会将其设置为 NULL,因此它永远不会离开循环。

free(del);
del = NULL;

关于c - 链接列表中的元素没有被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393589/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com