1 #include<iostream>
2 #include<vector>
3
4 using namespace std;
5
6 struct Node
7 {
8 int key;
9 Node* L_Next;
10 };
11 Node* ReverseList(Node *List)
12 {
13 Node* Reverse_L = NULL;
14 Node* PNode = List->L_Next;
15 Node* PPrev = NULL;
16 while (PNode != NULL)
17 {
18 Node* Pnext = PNode->L_Next;
19 if (Pnext == NULL)
20 {
21 Reverse_L = PNode;
22 }
23 PNode->L_Next = PPrev;
24 PPrev = PNode;
25 PNode = Pnext;
26 }
27 return Reverse_L;
28 }
29
30 int main(void)
31 {
32
33 Node* L = new Node;
34 L->L_Next = NULL;
35 Node* p;
36 p = L;
37 vector<int>vec;
38 int a;
39 char temp;
40 while (temp = cin.get() != '\n')
41 {
42 cin.unget();
43 cin >> a;
44 vec.push_back(a);
45 }
46 for (int i = 0; i < vec.size(); i++)
47 {
48 Node* q = new Node;
49 q->key = vec[i];
50 q->L_Next = NULL;
51 //q->L_Next = L->L_Next;
52 //L->L_Next = q;
53 while (p->L_Next != NULL)
54 {
55 p = p->L_Next;
56 }
57 p->L_Next = q;
58 }
59
60 p = L;
61 while (p->L_Next != NULL)
62 {
63 p = p->L_Next;
64 cout << p->key<<' ';
65 }
66 L=ReverseList(L);
67 cout << endl;
68 p = L;
69 while (p != NULL)
70 {
71 cout << p->key << ' ';
72 p = p->L_Next;
73 }
74 return 0;
75
76 }