Delete a given node in a singly linked list. You don't have an access to the root node of the list. You have only access to the given node.
Let's suppose this is your definition of a node.
class Node {
Node next;
int data;
}
Deleting a node in the middle of a singly linked list could happen if you copy the value from the next node over the given node and then to delete the next node.
public static void deleteMiddleNode(Node n){
if(n == null){
System.out.println("Node value is incorrect");
}
// in case of last element
if(n.next == null){
n = null;
}
Node next = n.next;
n.data = next.data;
n.next = next.next;
}