#include <stdio.h>
#include <malloc.h>
typedef struct node
{
int info;
struct node* next;
}node,*link;
node* change(link head)
{
link p,q;
p = head;
head = NULL;
while(p)
{
q= p->next ;
p->next = head ;
head = p ;
p = q;
}
return head;
}
void display(link head)
{
link p;
p=head;
while(p)
{
printf("%d ",p->info);
p=p->next;
}
}
node *nizhuan(node *head)
{
node *q,*p;
p=NULL;
while(head!=NULL) //
{
q=p;
p=head;
head=head->next;
p->next=q;
}
return p;
}
main()
{
link head,r,s;
int m;
head=r=NULL;
printf("请输入数据,以0 结尾:\n");
scanf("%d",&m);
while(m!=0)
{
s= (link)malloc(sizeof(node)) ;//
s->info =m;
if(head==NULL)
head=s;
else
r->next = s ;//
r=s;
scanf("%d",&m);
}
if(r)
r->next=NULL;
printf("输入单链表数据如下:\n");
display(head);
printf("逆置单链表数据如下:\n");
head=change(head);
printf("\n");
display(head);
}