MCN Professionals | Interview Question of the day
MCN Professionals is starting Industrial Training for MCA-2012 Batch. Have a look at our Industrial Training Program and Course Details.
-----------------------------------------------------------------------------------------------------------------------------------------
Today's Question:
Given a linked list. Write code to delete alternate nodes from the list. For example:
If the list given is
2 -> 3 -> 5 -> 1 -> 4 -> 8
The result should be
2 -> 5 -> 4
Solution:
This is an easier one (compared to the usual code I put in this section). But there are few loop holes where students can get stuck. Let me write the code straight away:
We will take 2 points (head & next). next pointer will point to the node being deleted and head will point its previous node. In each loop we will delete the node pointed to by next pointer and we will reset the pointers.
void deleteAlternate(Node* head)
{
// If there are 0 or 1 nodes then return
if(head == NULL || head->link == NULL)
return;
Node * next = head->link;
while(next != NULL)
{
head->link = next->link;
delete next;
// Make head & next point to the next set of nodes
head = head->link;
next = head->link;
}
}
---------------------------------------------------------------------------
Interview Questions Archive:
To see all the questions in the category Click Here...