主题:单向链表删除结点出错,求问题
struct student * del(struct student *head,int num)
{
struct student *p;
struct student *p1;
if(head==NULL)
{
}
else
{
p=head;
p1=NULL;
while(num!=p->num&&p->next!=NULL)
{
p1=p;
p=p->next;
}
if(num==p->num)
{[color=FF0000]
if(head==p)
head=p->next;[/color]
else
p1->next=p->next;
}
free(p);
return head;
}
}
问题在于,我删除第一个结点的时候。,出问题,删除其他结点时正常,求解
{
struct student *p;
struct student *p1;
if(head==NULL)
{
}
else
{
p=head;
p1=NULL;
while(num!=p->num&&p->next!=NULL)
{
p1=p;
p=p->next;
}
if(num==p->num)
{[color=FF0000]
if(head==p)
head=p->next;[/color]
else
p1->next=p->next;
}
free(p);
return head;
}
}
问题在于,我删除第一个结点的时候。,出问题,删除其他结点时正常,求解