链表删除节点的问题
其他的节点可以删除,但是目标在头结点时,就会有错误,弹错并且显示了一个垃圾值-57......,到底哪里错了呢?局部代码如下:
程序代码:struct Date
{
int num;
struct Date *next;
};
void Dellink(struct Date *head)
{
struct Date *p1,*p2;
int n;
printf("请输入需要删除的节点num的值:");
scanf("%d",&n);
for(p1=head,p2=NULL; p1!=NULL&&p1->num!=n; p2=p1,p1=p1->next)
;
if(p1==NULL)
{
printf("没有找到%d。\n",n);
return 0;
}
if(p2==NULL) //问题大概出在这里
head=head->next;
else
p2->next=p1->next;
free(p1);
}
[ 本帖最后由 FireRabbit 于 2014-9-26 13:32 编辑 ]









