NODE *creatlist(int a[])
{
NODE *h,*p,*q;
int i;
h=(NODE *)malloc(sizeof(NODE));
h->next=NULL;
for(i=0;i<N;i++)
{
q=(NODE *)malloc(sizeof(NODE));
q->data=a[i];
q->next=NULL;
if(h->next==NULL)
h->next=p=q;
else
{
p->next=q;
p=q;
}
}
return h;
}
if语句和else 语句那里看不懂,返回值为h 为什么我感觉是只有一次给h的一个节点赋值。该怎么理解,求解答。