237. Delete Node in a Linked List
Description
Write a function to delete a node (except the tail) in a singly linked list, given only access to that node.
Supposed the linked list is1 -> 2 -> 3 -> 4
and you are given the third node with value3
, the linked list should become1 -> 2 -> 4
after calling your function.
Solution
- 题意即在主程序中已经有一个写好的链表,现在直接给你一个链表中某节点的指针,要求你把这个节点在链表中删除。
- 个人感觉不可能直接就把这个节点直接删除了,但是要实现题目的目的(最后输出少了该节点的值),我们可以巧妙地将下一个节点的之赋给当前结点,然后把下一个节点删了(题目说了该节点不是尾节点)。代码如下。
class Solution {
public:
void deleteNode(ListNode* node) {
node->val = node->next->val;
node->next = node->next->next;
}
};