新手求助:链表问题
#include "stdio.h"#include "iostream.h"
#include "string.h"
struct node
{
int inum;
int iscore;
struct node *nnext;
};
node *create()
{
int no;
node *head,*pn,*pt;
head=0; //为什么if中的语句不能放在这里??
cout<<"产生无序链表:"<<endl;
cin>>no;
while(no!=-1)
{
pn=new node;
pn->inum=no;
cin>>pn->iscore;
if(head==0)
{
head=pn;
pt=pn;
}
else
{
pt->nnext=pn;
pt=pn;
}
cin>>no;
}
pt->nnext=0;
return head;
}
void print(node *head)
{
node *p=head;
cout<<"输出:"<<endl;
while(p!=0)
{
cout<<p->inum<<'\t'<<p->iscore<<endl;
p=p->nnext;
}
}
main()
{
node *head;
int no;
head=create();
print(head);
}
问题:建立新链表中,循环前就已经将head=0了,那循环中的if(head==0)不是多余的吗,为什么if中的语句不能放在head=0;后面??十分迷茫,
望前辈给予指教!!!