#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int info;
struct node *link;
}
NODE;
NODE * get_node()
{
NODE *p;
p = (NODE*)malloc(sizeof(NODE));
printf("Enter info:");
scanf("%d",&p->info);
p->link = NULL;
return p;
}
NODE * create_sll()
{
NODE *first=NULL,*last,*t;
int i,n;
printf("Enter no.of nodes:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
t = get_node();
if(first==NULL)
first = t;
else
last->link = t;
last = t;
}
return first;
}
void display(NODE *h
{
while(h!=NULL)
{
printf("%d\t",h->info);
h = h->link;
}
printf("\n");
}
NODE * reverse(NODE *h)
{
NODE *first=NULL,*t;
while(h!=NULL)
{
t = (NODE*)malloc(sizeof(NODE));
t->info = h->info;
t->link = NULL;
if(first!=NULL)
t->link = first;
first = t;
h = h->link;
}
return first;
}
void main()
{
NODE *start1,*start2;
start1 = create_sll();
start2 = reverse(start1);
display(start1);
display(start2);
}
Output-
Enter no.of nodes: 3
Enter info:3
Enter info:4
Enter info:5
3 4 5
5 4 3