面试题 02.03. 删除中间节点
题目链接
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/delete-middle-node-lcci/
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
题目分析
由于传入的是被删除结点,不知道链表头,所以只能让删除结点的值和后继值交换,再删除后继即可。
/**
* 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* temp = node;
node->val = node->next->val;
node->next->val = temp->val;
node->next = node->next->next;
}
};