请帮忙看下这个删除链表元素的怎么错的
line *del(line *head,int num){
line *p1,*p2;
p1=p2=head;
while(p1->no !=num&&p1->next !=NULL)
{
p2=p1;
p1=p1->next ;
}
if(p1->no ==num)
{
if(p1==head)
{ head=p1->next ;
}
else
p2->next =p1->next ;
}
else
cout<<"not find";
return head;
}
没发现错误,但是当删除头结点就错了,求帮忙,谢谢