请大家帮忙看看这个函数错在哪里
/*函数功能: 从head指向的链表中删除节点数据大于100的节点函数参数: 结构体指针变量head,表示原有链表头结点指针
返回参数: 删除节点后的头结点指针
*/
struct Link *DeleteNode(struct Link *head)
{
struct Link *p = head, *pr = head;
if (head == NULL)
{
printf("No Link Table!");
return head;
}
while (pr != NULL)
{
while (p->data <= 100)
{
pr = p;
p = p->next;
}
if (p == head)
{
head = p->next;
}
else
{
pr->next = p->next;
}
}
free (p);
return head;
}