Coders Packet

Deleting a node from a singly linked list using C

By Arjun Tyagi

  • Ide (3).c
  • 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.

    Time Complexity:

    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).

    Code:

    #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:

        output

    Image output:

                            first

     

     

                                       deletion

     

    Download Complete Code

    Comments

    Comments for the packet "Deleting a node from a singly linked list using C";
    No comments yet