建立单链表不成功
各位帮忙看看,这个建立包含3个元素的单链表的程序为何不成功,不管输入什么数,最后链表中元素都为0?
s* creat()
{
int i,x;
s *head,*p,*q;
head=(s*)malloc(sizeof(s));
head->next=NULL;
p=(s*)malloc(sizeof(s));
scanf("%d",&x);
p->data=x;
p->next=head->next;
head->next=p;
for(i=0;i<2;i++)
{
q=(s*)malloc(sizeof(s));
scanf("%d",&q->data);
q->next=p->next;
p->next=q;
p=p->next;
}
return head;
}