地址 https://www.acwing.com/problem/content/description/85/node
题目描述
给定单向链表的一个节点指针,定义一个函数在O(1)时间删除该结点。算法
假设链表必定存在,而且该节点必定不是尾节点。编程
样例函数
输入:链表 1->4->6->8 删掉节点:第2个节点即6(头节点为第0个节点) 输出:新链表 1->4->8
算法1
其实不喜欢这种trick的编程
这里的删除 实际上是将下一个节点的值赋给本身 而后将下一个节点删除spa
C++ 代码指针
/** * 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* next = node->next; node->val = next->val; node->next = next->next; } }; 做者:defddr 连接:https://www.acwing.com/solution/acwing/content/3379/ 来源:AcWing 著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。