#include<stdio.h>
#include<stdlib.h>
typedef struct link_node
{
int info;
struct link_node *next;//指向下一个数据结点的指针
}node;
node *create()/*创建一个单链表*/
{
int n=0;
node *head,*p,*q;
p=q=(node*)malloc(sizeof(node));
head=NULL;
scanf("%d",&p->info);
while(p->info!=0)/*以‘0’结束*/
{
++n;
if(n==1)
head=p;
else
q->next=p;
q=p;
p=(node*)malloc(sizeof(node));
scanf("%d",&p->info);
}
q->next=NULL;
return head;
}
node *reverse(node *head)
{
node *p,*q;
p=head;
head=NULL;
while(p)
{
q=p;
p=p->next;
q->next=head;
head=q;
}
return head;
}
int main()
{
node *head,*p;
printf("\n请输入你需要创建的单链表:\n");
head=create();
printf("\n逆转结果:\n");
head=reverse(head);
p=head;
while(p)
{
printf("%5d",p->info);
p=p->next;
}
printf("\n");
return 0;
}