#include
using namespace std;
struct Data
{
int d;
struct Data *next;
};
//创建链表
Data* create()
{
int i,n;
Data *h,*p,*q;
cout<<"请输入链表节点的数量:";
cin>>n;
if(n>0)
{
h=q=new Data();
cout<<"请输入第1个链表节点的数据(整数):";
cin>>h->d;
for(i=2;i<=n;i++)
{
p=new Data();
cout<<"请输入第"< cin>>p->d;
q->next=p;
q=p;
}
q->next=NULL;
}
return h;
}
//输出链表的数据
void output(Data *h)
{
while(h)
{
cout<
if(h->next)
{
cout<<" ";
}
h=h->next;
}
cout<
//逆转链表
Data* reverse(Data *h)
{
Data *p=h,*q=NULL;
if(h)
{
p=p->next;
h->next=NULL;
}
while(p)
{
q=p->next;
p->next=h;
h=p;
p=q;
}
return h;
}
//释放链表
void free(Data *h)
{
Data *p=h;
while(p)
{
h=h->next;
delete p;
p=h;
}
}
int main()
{
Data *h=create();
cout<<"链表逆转前:"<
h=reverse(h);
cout<<"链表逆转后:"<
free(h);
return 0;
}