In C , the successor can be found easily by following the next pointer. The predecessor can be found by traversing the entire list from the start and checking which object points to the given one. D A only deletes one node ahead. B only moves the current pointer ahead two nodes but leaves the list intact. C is bizarre, it creates a small loop in the list so that the next pointer of the next node will point back to the current node.
E is similar to B , but moves current pointer ahead three nodes.
Suppose last points to the last node in a singly linked list list1 whose front is head1 . Suppose head2 points to the first node in another singly linked list list2 . B is fatal and will lose list2 . C loses track of the end of list1 . D kills list2 by dropping all nodes after the first node and pointing the first node to the last node of list1 .