#include<stdio.h>
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}List;
List *Creat()
{
int i,m;
scanf("%d",&m);
List *head;
List *p1,*p2;
p1=p2=(List *)malloc(sizeof(List));
head=p1;
for(i=0;i<m;i++)
{
scanf("%d",&p1->data);
p2=p1;
p1=(List *)malloc(sizeof(List));
p2->next=p1;
}
p2->next=NULL;
return head;
}
List *Reverse(List *head1)
{
List *p1,*p2,*p3;
List *head;
head=NULL;
p1=head1;
p2=p1->next;
while(p2)
{
p3=p2->next;
p2->next=p1;
p1=p2;
p2=p3;
}
head1->next=NULL;
head=p1;
return head;
}
void print(List *head1)
{
List *p;
p=head1;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
List *head1;
List *head2;
head1=Creat();
head2=Reverse(head1);
print(head2);
}
#include<malloc.h>
typedef struct Node
{
int data;
struct Node *next;
}List;
List *Creat()
{
int i,m;
scanf("%d",&m);
List *head;
List *p1,*p2;
p1=p2=(List *)malloc(sizeof(List));
head=p1;
for(i=0;i<m;i++)
{
scanf("%d",&p1->data);
p2=p1;
p1=(List *)malloc(sizeof(List));
p2->next=p1;
}
p2->next=NULL;
return head;
}
List *Reverse(List *head1)
{
List *p1,*p2,*p3;
List *head;
head=NULL;
p1=head1;
p2=p1->next;
while(p2)
{
p3=p2->next;
p2->next=p1;
p1=p2;
p2=p3;
}
head1->next=NULL;
head=p1;
return head;
}
void print(List *head1)
{
List *p;
p=head1;
while(p)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int main()
{
List *head1;
List *head2;
head1=Creat();
head2=Reverse(head1);
print(head2);
}