+ 2
How to delete a node in middle in a singly linked list?
//pls check the prog below // assume head is already declared void del(int num) { node* temp = head; while(temp->next!=NULL) { if((temp->next)->data == num) { node* temp1 = (temp->next)->next; node* temp2 = temp->next; temp2->next=NULL; free(temp2); temp->next = temp1; } } }
1 Antwort
+ 9
// consider cases wherein node to be deleted is found to be at the front, or at the back of the linked list.
void del(int num)
{
    node* temp1 = head;
    node* temp2 = NULL;
    bool isFound = false;
    while(temp1 != NULL && !isFound)
    {
        if (temp1->data == num)
        {
               isFound = true;
                if (temp1 == head)
                {
                      head = temp->next;
                      delete temp;
                 }
                 else if (temp1 == tail)
                 {
                       tail = temp2;
                       delete temp;
                 }
                else 
                {
                      temp2->next = temp1->next;
                      delete temp;
                 }
          }
          else
          {
                temp2 = temp1;
               temp1 = temp1->next;
           }
      }
}



