Write a function to delete a node in a singly-linked list. You will not be given access to the head of the list, instead you will be given access to the node to be deleted directly.
It is guaranteed that the node to be deleted is not a tail node in the list.
说人话:
单链表中结点不重复,给你一个结点,删除掉这个结点。
要点:
示例:
因为本题没有给我们 head 结点,所以我们不可能得到要删除的结点 node 的前一个结点 pre,所以是不可能删除掉 node 结点本身的。
我们可以利用结点唯一
这个条件,将要删除的结点 node 后面的结点 next 的值覆盖到 node 上面,然后删除掉 next 直接,就等价于删除掉 node 结点。
/** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode(int x) { val = x; } * } */ class Solution { public void deleteNode(ListNode node) { ListNode next = node.next; node.val = next.val; node.next = next.next; } }