题目
请编写一个函数,用于 删除单链表中某个特定节点 。在设计函数时需要注意,你无法访问链表的头节点 head ,只能直接访问 要被删除的节点 。
题目数据保证需要删除的节点 不是末尾节点 。
示例
![](https://img-blog.csdnimg.cn/0ff4c06ec89f471d97575e6f90ebad8a.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBARXJpY-WKoOayueWtpu-8gQ==,size_20,color_FFFFFF,t_70,g_se,x_16)
这题其实真的简单,只能直接访问到给定要删除的节点,本来删除是要前驱节点的next指针指向删除节点的后继节点,但是访问不到前驱节点。可以使得后继节点的值 直接 赋给 当前要删除的节点,这样就相当于删除node的后继节点了
也就是要删除 [4,5,1,9]中的5,我把后面1的值赋给5 变成[4,1,1,9],然后删除原本的1,就可以了
/**
* 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;
}
}