关于删除链表的问题
......void del_dorm(Dorm **firstlist,char name)
{
Dorm *head;
Dorm *previous;
head = *firstlist;
previous = NULL;
while(head != NULL && !(strcmp(previous->name,name)))
{
previous = head;
head = head->next;
}
if (head == NULL)
{
printf("未能找到数据");
return;
}
else
{
if(previous == NULL)
{
*firstlist = previous->next;
free(previous);
}
else
{
previous->next = head->next;
free(previous);
}
printf("删除成功!");
}
}
程序执行,删除链表中 程序会卡住然后崩掉,求助大佬们!{:10_285:} void del_dorm(Dorm ** firstlist , char name[])
{
Dorm * p , * q ;
for(q = NUULL , p = * firstlist ; p && strcmp(p -> name , name) ; q = p , p = q -> next) ;
if(p) {
if(! q) * firstlist = p -> next ;
else q -> next = p -> next ;
free(p) ;
} else {
fprintf(stderr , "未能找到数据\n") ;
}
}
页:
[1]