删除链表中的头结点删不去!但可以删除其他结点!但整个代码又没有什么问题,怎么回事?
struct word {char c[20];
struct word *next;
}; //这里是结构体定义
void del_word(struct word *head,char *w) //通过这个函数,我要删去结构体的成员c与字符数组相同的结构体
{ int j,b=0;
struct word *p1,*p2;
p1=p2=head;
while(p1!=NULL)
{
for(j=0;p1->c[j]!=0;j++)
{
if(p1->c[j]!=w[j])break;
if(p1->c[j+1]==0&&w[j+1]==0&&p1->c[j]==w[j])
{
p2->next=p1->next;
p1=p1->next;
b=1;
break;
}
}
if(b==1)b=0;
else
{
p2=p1;
p1=p1->next;
}
}
} //通过这个函数,我发现如果要删除的成员位于头结点我不能够删掉该结点。但可以删除除头结点外的其他结点,为什么呢?求详解!!!!!