Skip to content
Home » Delete first node of a singly linked list

Delete first node of a singly linked list

Below is the code to delete first node of 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 del_first(){
if(head==NULL){
printf("List is already empty");
}else{
struct node *temp=head;
head=head->next;
free(temp);
}
}
int main(){
create_linked_list(30);
create_linked_list(20);
create_linked_list(10);
create_linked_list(18);
del_first();
//traversing the linked list
struct node *ptr=head;
while(ptr!=NULL){
printf("%d\t",ptr->data);
ptr=ptr->next;
}
}

OUTPUT:

20 10 18