题目
题解
第一想法
本题只能获取到node后面的结点,正常来说删除操作需要能够获取到node的前驱结点。这可咋办?
将node的下一个结点的值赋给node,然后删除掉node的下一个结点。相当于删除掉了node。
如果觉得难理解请看这句话:
如何让自己在世界上消失,但又不死?——将自己完全变成另外一个人,再杀了那个人就行了。——摘自LeetCode评论区
正确题解
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
node -> val = node -> next ->val;
node -> next = node -> next -> next;
}