#include<iostream>
using namespace std;
int main()
{
struct Node
{
int data;
Node*pnext;
};
typedef Node List;
List*head=new List();
head->data=0;
head->pnext=NULL;
int tmp;
List*p=head;
while (cin>>tmp)
{
List*pNew=new List();
pNew->data=tmp;
pNew->pnext=NULL;
p->pnext=pNew;
p=pNew;
}
Node*q=head->pnext;
while (q!=NULL)
{
cout<<q->data<<" ";
q=q->pnext;
}//建立链表
cout<<endl;
List*prev=NULL;
List*ReverseHead=NULL;
List*qq=head->pnext;
while (qq!=NULL)//反转链表
{
List*pNext=qq->pnext;
if (pNext==NULL)
{
ReverseHead=qq;
}
qq->pnext=prev;
prev=qq;
qq=pNext;
}
List*l=ReverseHead;
while (l!=NULL&&l!=head)
{
cout<<l->data<<" ";
l=l->pnext;
}
cout<<endl;
}
链表的反转简单实现
最新推荐文章于 2020-09-07 23:54:16 发布