懂的朋友帮我看下这个简单的链表创建函数错在哪里

来源:百度知道 编辑:UC知道 时间:2024/05/21 06:51:55
#include <iostream>
using namespace std;
struct NODE
{
int data;
NODE *next;
};
NODE *createList()
{
NODE *L,*p,*q;
L=NULL;
int i;
cin>>i;
p=L;
while(i!=-1)
{
q=new (NODE);
q->data=i;
p->next=q;
p=q;
}
p->next=NULL;
return L;
}
int main()
{
NODE *link;
link=createList();
while(link!=NULL)
{
cout<<link->data<<' ';
link=link->next;
}
return 0;
}

调试没错,就是运行有错

#include <iostream>
using namespace std;
struct NODE
{
int data;
NODE *next;
};
NODE *createList()
{
NODE *L,*p,*q;
L=NULL;
int i;
cin>>i;
p = L = new NODE;
while(i!=-1)
{
q=new (NODE);
q->data=i;
p->next=q;
p=q;
i--;//你没有这个。无法退出循环
}
p->next=NULL;
return L;
}
int main()
{
NODE *link;
link=createList();
link = link ->next;
while(link!=NULL)
{
cout<<link->data<<' ';
link=link->next;
}
return 0;
}