2.3 Implement an algorithm to delete a node in the middle of a single linked list, given only access to that node. EXAMPLE Input: the node ‘c’ from the linked list a->b->c->d->e Result: nothing is returned, but the new linked list looks like a->b->d->e


It seems cannot direclty delete the node.

But we can delete the data.

void delete(Node toDelete)
{
  if (toDelete == null)
    return null;
    
  Node n = toDelete;
  while (n!= null)
  {
    if (n.next != null)
    {
      n.data = n.next.data;
      if (n.next.next == null)
      {
        n.next = null;
      }
    }
    n= n.next;
  }
}