#include <iostream>
using namespace std;
struct Lnode{
int data;
struct Lnode *next;
};
int main()
{
int n,i,j,a;
Lnode *head,*p,*q,*r;
head=new Lnode;//建立头节点
head->next=NULL;//头节点的next域设成NULL
r=head;
cin>>n;//输入要输入的值的个数
for(i=0;i<n;i++)//尾插法建立链表并输入值
{
p=new Lnode;
cin>>p->data;
r->next=p;
p->next=NULL;
r=p;
}
q=head->next;
while(q!=NULL)//输出链表中的值
{
cout<<q->data<<" ";
q=q->next;
}
cout<<endl;
//逆置操作
p=head->next;
q=p->next;
for(i=0;i<n-1;i++)
{
for(j=0;j<n-1-i;j++)
{
a=p->data;
p->data=q->data;
q->data=a;
p=p->next;
q=q->next;
}
p=head->next;
q=p->next;
}
r=head->next;
while(r!=NULL)
{
cout<<r->data<<" ";
r=r->next;
}
}
单链表逆置操作(交换元素)
于 2022-03-18 10:01:12 首次发布