参考链接
- https://leetcode-cn.com/problems/delete-middle-node-lcci/
题目描述
实现一种算法,删除单向链表中间的某个节点(即不是第一个或最后一个节点),假定你只能访问该节点。
解题思路
如果是双向链表就简单了,但这是单向链表,还只能访问当前节点,所以可以让后面的值依次替换前面的值。
代码
class Solution {
public:
void deleteNode(ListNode* node) {
for (; node->next->next != NULL; node = node->next)
{
node->val = node->next->val;
}
node->val = node->next->val;
node->next = NULL;
}
};