237. Delete Node in a Linked List
- Total Accepted: 111980
- Total Submissions: 249417
- Difficulty: Easy
- Contributors: Admin
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.
给你一个链表中的节点,让你删除这个节点。
按照正常写法,删除一个节点要知道这个节点的前驱和后继,但是现在只告诉你这个节点了,那么我们就把这个节点的后继节点的值复制过来,然后删除后继节点就可以了
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public void deleteNode(ListNode node) {
ListNode temp = node.next;
node.val = temp.val;
node.next = temp.next;
temp.next = null;
}
}