#include<stdio.h>
#include<stdlib.h>
typedef struct node
{
int data;
struct node* next;
}node;
node* head=NULL;
void insert(int data, int n)
{
node* temp1 = (node*)malloc(sizeof(node));
temp1->data = data;
temp1->next = NULL;
if (n == 1)
{
temp1->next = head;
head = temp1;
return;
}
node* temp2=head;
for (int i = 0; i < n - 2 && temp2 != NULL; i++)
{
temp2 = temp2->next;
}
temp1->next = temp2->next;
temp2->next = temp1;
}
void print()
{
node* temp = head;
printf("list is:");
while (temp != NULL)
{
printf("%d", temp->data);
temp = temp->next;
}
printf("\n");
}
void rever(node*current)
{
if (current == NULL)
{
return;
}
rever(current->next);
printf("%d",current->data);
}
int main()
{
insert(2, 1);
insert(3, 2);
insert(4, 1);
insert(5, 2);
print();
rever(head);
return 0;
}