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

Deep Copy the next node to the current node, and then modify current node to next node's next.  Pay attention if the node is the last node, we could not delete it in this way.

public class RemoveWithOneAccess {
    public void remove(Node node) {
        //The last node could not be delete without the pervious node
        if(node == null || node.next == null) return;
        else {
            node.val = node.next.val;
            node.next = node.next.next;
        }
    }
}