237. 删除链表中的节点
以往删除特定节点,在拿到头节点后,遍历链表,找到需要删除的节点后按照下图操作即可:
但是本题不允许访问头节点,只可以访问需要删除的那个节点,因此可以考虑从将需要删除的节点更改为与下一个节点相同的节点,这样删除下一个节点,即可达到删除特定节点的目的,如下图所示:
代码实现如下
/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
class Solution {
public void deleteNode(ListNode node) {
node.val = node.next.val;
node.next = node.next.next;
}
}