参考链接
- https://leetcode-cn.com/problems/delete-node-in-a-linked-list/
题目描述
请编写一个函数,使其可以删除某个链表中给定的(非末尾)节点。传入函数的唯一参数为要被删除的节点。
解题思路
此题与删除中间节点一样,如果是双向链表就简单了,但这是单向链表,还只能访问当前节点,所以可以让后面的值依次替换前面的值。
代码
class Solution {
public:
void deleteNode(ListNode* node) {
while(node->next->next != NULL)
{
node->val = node->next->val;
node = node->next;
}
node->val = node->next->val;
node->next = NULL;
}
};