0237. Delete Nodes in a Linked List

237. Delete Node in A Linked List #

题目 #

有一个单链表的head,想要删除它的一个节点node

给定需要删除的节点node,并且无法访问第一个节点head

链表所有值都是唯一的,且给定的节点node不是链表中的最后一个节点。

删除节点的意思是指:

  • 给定节点的值不应该存在于链表中。
  • 链表中的节点数应该减少1。
  • node前面所有值的顺序相同。
  • node后面所有值的顺序相同。

思路 #

代码 #

public class ListNode {
    int val;
    ListNode next;
    ListNode() {}
    ListNode(int val) { this.val = val; }
    ListNode(int val, ListNode next) { this.val = val; this.next = next; }
}
class Solution {
    public void deleteNode(ListNode node) {
        node.val = node.next.val;
        node.next = node.next.next;
    }
}