#include<iostream>
#include<cstdio>
#include<stdlib.h>
#include<malloc.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
#define INFEASIBLE -1
#define OVERFLOW -2
typedef int ElemType;
typedef int Status;
typedef struct LNode{
ElemType data;
struct LNode* next;
}LNode,*LinkList;
Status GetElem_L(LinkList L,int i,ElemType &e){
LinkList p=L->next;
int j=1;
while(p&&j<i){
p=p->next;
++j;
}
if(!p)return ERROR;
e=p->data;
return OK;
}
Status ListInsert_L(LinkList L,int i,ElemType e){
LinkList p=L;
int j=0;
while(p&&j<i-1){
p=p->next;
j++;
}
if(!p||j>i-1)return ERROR;
LinkList s=(LinkList)malloc(sizeof(LNode));
s->data=e;
s->next=p->next;
p->next=s;
return OK;
}
Status ListDelete_L(LinkList &L,int i,ElemType&e){
LinkList p=L;
int j=0;
while(p->next&&j<i-1){
p=p->next;
j++;
}
if(!(p->next)||j>i-1)return ERROR;
LinkList q=p->next;
p->next=q->next;
e=q->data;
free(q);
return OK;
}
void createLinkList(LinkList&L,int n){
L=(LinkList)malloc(sizeof(LNode));
L->next=NULL;
for(int i=0;i<n;i++){
LinkList p=(LinkList)malloc(sizeof(LNode));
scanf("%d",&p->data);
p->next=L->next;
L->next=p;
}
}
void mergeList(LinkList LA,LinkList LB,LinkList&LC){
LinkList pa=LA->next,pb=LB->next,pc;
pc=LC=LA;
while(pa&&pb){
if(pa->data<=pb->data){
pc->next=pa;
pc=pa;
pa=pa->next;
}else{
pc->next=pb;
pc=pb;
pb=pb->next;
}
}
pc->next=pa?pa:pb;
}
void Reverse(LinkList linkList){
LinkList p=linkList->next;
while(p){
printf("%d ",p->data);
p=p->next;
}
}
int main(){
LinkList list;
createLinkList(list,10);
Reverse(list);
return 0;
}