#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode* next;
}LNode, * LinkList;
void CreatTail(LinkList& L, int n)
{
L = new LNode;
L->next = NULL;
LinkList r = L;
while (n--)
{
LinkList p = new LNode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
}
}
void reverse(LinkList& L)
{
LinkList H = L, p = L->next, t = NULL;
while (p)
{
t = p;
p = p->next;
t->next = H;
H = t;
}
L->next = NULL;
L = H;
while (L->next->next)
{
cout << L->data << " ";
L = L->next;
}
cout << L->data << endl;
}
void Printlist(LinkList L)
{
LinkList p = L->next;
while (p->next)
{
cout << p->data << " ";
p = p->next;
}
cout << p->data;
cout << endl;
}
int main()
{
LinkList L;
int n, e, k;
while (cin >> n && n)
{
CreatTail(L, n);
Printlist(L);
reverse(L);
}
return 0;
}
链表逆转(c++)
于 2022-03-28 15:58:29 首次发布