为什么下面那个IF语句不能删除?
void del(LinkList H)
{
int n=0;
char data[100];
printf("please input the char to delete:\n");
scanf("%s",data);
LinkList p,p1;
for(p=H;p!=NULL;p1=p,p=p->next)
{
while(strcmp(p->data,data)==0)
{
p1->next=p->next;
free(p);
p=p1->next;
if(p==NULL)break;
}
if(p==NULL) //为什么这个IF语句不能删除
break;
}
}