-
题目描述
-
解题思路心得
就是逆转
-
代码
#include <iostream>
using namespace std;
struct LNode
{
int data;
LNode *next;
};
void createlist(LNode *&L, int length)
{
LNode *p = L;
for (int i = 0; i < length; i++)
{
LNode *tmp = new LNode;
cin >> tmp->data;
tmp->next = NULL;
p->next = tmp;
p = p->next;
}
}
int Printlist(LNode *L)
{
LNode *p = L->next;
int count = 0;
if (p == NULL)
{
return 0;
}
while (p)
{
cout << p->data;
if (p->next != NULL)
{
cout << " ";
/* code */
}
p = p->next;
count++;
}
cout << endl;
return count;
}
void relist(LNode *&L)
{
LNode *q ,*p;
p=L->next;
L->next=NULL;
while (p)
{
q=p->next;
p->next=L->next;
L->next=p;
p=q;
}
}
int main()
{
int n = 0;
while (1)
{
LNode *LA = new LNode;
LA->next = NULL;
cin >> n;
if (!n)
{
break;
}
createlist(LA, n);
relist(LA);
Printlist(LA);
}
return 0;
}