这个错误怎么解决,QQ了

#include<stdio.h>
#include<malloc.h>
struct NODE
{
int data;
struct node*next;
};

void NODE create() //这里报错[Error]expected initializer before ''token
{
NODEhead,q,p;
char ch;
int a;
head=(NODE
)malloc(sizeof(NODE));
q=head;
ch='
';
printf("\nInput the list:");
while(ch!='?')
{
scanf("%d",&a);
p=(NODE
)malloc(sizeof(NODE));
p->data=a;
q->nextv=p;
q=p;
ch=getchar();
}
q->next=NULL;
return(head);
printf("output the list:");
a=a->next;
while(a!=NULL)
{
printf("%d",a->data);
a=a->next;
}
}
NODElocate(NODEhead,int x)
{
NODEp;
p=head->next;
while((p!=NULL)&&(p->data!=x))
p=p->next;
return 0;
}
void insert(NODE
p,int x)
{
NODEq;
q=(NODE
)malloc(sizeof(NODE));
q->data=x;
p->next=p->next;
p->next=q;
}

结构体改为
typedef struct node
{
int data;
struct node *next;
}NODE;