原题
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.
题目分析
删除单链表的某个指定数据域的节点,比较简单,直接修改删除节点的数据域和指针域为删除节点的后一个节点。
代码实现
void deleteNode(ListNode node) {
if(node==null)
return;
node.val = node.next.val;
node.next = node.next.next;
}
链表中删除某个节点的时间和空间复杂度为O(1)。