By Arjun Tyagi
In this project, we will discuss how to delete a node from a singly linked list using C language. To delete a node at the nth position we have to traverse up to the nth element from starting.
To delete a node from a singly linked list we have to traverse through the list up to nth element. So, the time complexity to delete a node is big-oh(n) or O(n).
#include
#include
struct node{
int data;
struct node* next;
}; //declaring a node data-type//
struct node* head;
void delete(int pos){
struct node* prev;
struct node* curr;
struct node* after;
curr=head;
for(int i=0;i<pos-1;i++){ // Traversing up to the given position//
prev=curr;
curr=curr->next;
}
after=curr->next;
prev->next=after;
}
void insertion(int data){
struct node* newnode=(struct node*) malloc(sizeof(struct node)); //allocating memory for a node//
newnode->data=data;
newnode->next=NULL;
if(head==NULL){ //list is empty //
head=newnode;
}
else{
struct node* temp=head;
while(temp->next!=NULL){
temp=temp->next; //traversing to the last element//
}
temp->next=newnode; //Storing the address of new node in previous node link part//
}
}
void print(){
struct node* temp=head;
while(temp!=NULL){
if(temp->next==NULL)
printf("%d",temp->data);
else
printf("%d->",temp->data);
temp=temp->next;
}
printf("\n");
}
int main() {
insertion(1);
insertion(2);
insertion(3);
insertion(4);
print();
delete(2);
print();
// your code goes here
return 0;
}
OUTPUT:

Image output:


Submitted by Arjun Tyagi (Arjuntyagi)
Download packets of source code on Coders Packet
Comments