#include<bits/stdc++.h>
using namespace std;
typedef struct LNode {
int data;
struct LNode *next;
} LNode, *LinkList;
bool List_HeadInsert(LinkList &L) {
if(L == NULL) return false;
L = (LNode *)malloc(sizeof(LNode));
L -> next = NULL;
for(int i = 1; i <= 5; i ++) {
LNode *s = (LNode*)malloc(sizeof(LNode));
s -> data = i;
s -> next = L -> next;
L -> next = s;
}
return true;
}
void reverse(LinkList &L) {
LNode *p = L->next;
L->next = NULL;
while(p != NULL) {
LNode *q = p;
p = p -> next;
q -> next = L -> next;
L -> next = q;
}
}
void Point(LinkList L) {
L = L -> next;
while(L != NULL) {
printf("%d ",L -> data);
L = L -> next;
}
printf("\n");
}
int main() {
LinkList L;
if(List_HeadInsert(L)) {
Point(L);
} else {
printf("错误\n");
}
reverse(L);
Point(L);
return 0;
}