Skip to content
Home » Inserting nodes at first position in a singly linked list

Inserting nodes at first position in a singly linked list

Below is the code to insert nodes at first position in a singly linked list.

#include <stdio.h>
#include <stdlib.h>
struct node{
int data;
struct node *next;
};
struct node *head;
void create_linked_list(int element){
struct node *temp=malloc(sizeof(struct node));
temp->data=element;
temp->next=NULL;
if(head==NULL){
head=temp;
}
else{
struct node *ptr=head;
while(ptr->next!=NULL){
ptr=ptr->next;
}
ptr->next=temp;
}
}
void insert_beggining(int element){
struct node *temp=malloc(sizeof(struct node));
temp->data=element;
temp->next=NULL;
temp->next=head;
head=temp;
}
int main(){
create_linked_list(30);
create_linked_list(20);
create_linked_list(10);
create_linked_list(18);
insert_beggining(17);
insert_beggining(16);
insert_beggining(23);
//traversing the linked list
struct node *ptr=head;
while(ptr!=NULL){
printf("%d\t",ptr->data);
ptr=ptr->next;
}
}

OUTPUT:

23 16 17 30 20 10 18