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/