求助:建立动态单向链表的问题
1,struct student{2,int num;
3,float score;
4,struct student *next;}
5,struct *p1,*p2;
6,p1=p2=(struct student*)malloc(sizeof(struct student);
7,head=NULL
8,while(p1->num!=0)
9,{n=n+1;
10,if(n==1)head=p1;
11,else p2->next=p1;
12,p2=p1;
13,p1=(struct student*)malloc(sizeof(struct student);
这是一个简略的建立单项链表的语句.在第6行申请了一个空间使p1,p2指向它.第10行使head也指向这个空间.
接着p2->next=p1.这有个疑问?由于还没有申请新的空间11行的语句不就把链表做成了个循环链即链表的尾又指向链表的头.是不是应该把第13行加到11行else后面?