题意:现在要删除某一个单链表中的某一个结点,只已知这个结点,其他信息均不知。
题解:假如给定:A->B->C->D->E->F 现在要删除C,但是并不知B,也就是不能通过B来删除C,但是我们知道D,那么我们就可以把D的信息复制给C,然后把D删除。
代码如下:
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
void deleteNode(ListNode* node) {
ListNode* tmp=node->next;
//a b c d e f delete c
node->val=tmp->val;
node->next=tmp->next;
free(tmp);
}
};