#include<iostream>
using namespace std;
typedef struct LNode
{
int data;
struct LNode* next;
int num;
}LNode,*LinkList;
LinkList& createList(LinkList& L, int n) //创建链表
{
L = new LNode;
L->next = NULL;
L->num = 0;
LinkList r = L;
for (int i = 0; i < n; i++)
{
LNode* p = new LNode;
cin >> p->data;
p->next = NULL;
r->next = p;
r = p;
L->num++;
}
return L;
}
void showList(LinkList L)
{
if (L->num == 0)
cout << "链表为空!" << endl;
else
{
int q = L->num;
for (int i = 0; i < q; i++)
{
cout << L->next->data << " ";
L = L->next;
}
cout << endl;
}
}
void reverseList(LinkList& L)
{
LinkList q, p = L->next;
L->next = NULL;
while (p)
{
q = p->next;
p->next = L->next;
L->next = p;
p = q;
}
}
int main()
{
LinkList L1;
int n1;
cout << "请输入链表的长度:" << endl;
cin >> n1;
cout << "请输入链表的内容:" << endl;
L1 = createList(L1, n1);
cout << "该链表为:" << endl;
showList(L1);
reverseList(L1);
cout << "连接方向逆转后的链表为:" << endl;
showList(L1);
return 0;
}
数据结构:将链表连接翻转,且利用原链表空间
最新推荐文章于 2023-07-28 22:46:28 发布