+ 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 Réponse
+ 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;
}
}
}