Skip to content
Home » Deleting an entire singly linked list

Deleting an entire singly linked list

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

OUTPUT:

List is empty