删除链表的节点出现问题

我创建了一个链表,链表的第一个节点不是空白的。我想用free函数删除第一个节点,发现出错。删除其他的节点没有问题。不知道什么缘故。

你的链表怎么定义的?

typeof struct Node
{
Node next;
}
Node * head这样定义的么?
那么你删除首节点要这么做
prehead = head;
head = head->next;
free(prehead);

删除节点时:
Node *s,*p;
s=p->next;
p->next=s->next;
free(s):
删除头节点
s->next=head->next
free(head);