#include <stdio.h>
#include <stdlib.h>
typedef struct LNode {
int data;
struct LNode* next;
}LNode;
typedef LNode *LinkList;
//尾插法创建链表
LinkList Create_List(){
LinkList L,p,r;
int x;
r=L=(LinkList)malloc(sizeof(LNode));
L->next =NULL;
scanf("%d",&x);
while(x!=0){
p=(LinkList)malloc(sizeof(LNode));
p->data =x;
p->next =NULL;r->next =p;//修改链接关系
r=p; //r指向新的尾节点
scanf("%d",&x);
}
return L;
}
//头插法新建一个链表,实现链表的倒置
LinkList Convert_List(LinkList L){
LinkList M,p,q;
p=L->next ;
M->next =NULL;
q=(LinkList)malloc(sizeof(LNode));
q=M->next ;
while(p!=NULL){
q->data =p->data ;
q->next =M->next ;
M->next =q;
p=p->next ;
}
return M;
}
void print(LinkList L){
LinkList p;
p=L->next ;
while(p!=NULL){
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main() {
LinkList L=Create_List();
print(L);
L=Convert_List(L);
print(L);
return 0;
}