链表删除节点的问题
其他的节点可以删除,但是目标在头结点时,就会有错误,弹错并且显示了一个垃圾值-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 编辑 ]