LeetCode: Delete Node in a Linked List

LeetCode: Delete Node in a Linked List

Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.

Supposed the linked list is 1 -> 2 -> 3 -> 4 and you are given the third node with value 3, the linked list should become 1 -> 2 -> 4 after calling your function.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class DeleteNodeInALinkedList {
public void deleteNode(ListNode node) {
assert node.next != null;

while (node != null && node.next != null) {
ListNode next = node.next;
node.val = next.val;

if (next.next == null) {
node.next = null;
}
node = node.next;
}
}
}