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 is 1 -> 2 -> 3 -> 4
and you are given the third node with value 3
, the linked list should become 1 -> 2 -> 4
after calling your function.
给定一个节点,删除链表中的该节点。
因为没有给出头结点,该节点实际上是不能删的,否则会丢失前面所有节点的信息。能做的只是表面上删除该节点——更改该节点的值。
解决方案:与下个节点的值交换,并删除下一个节点。
class Solution {public: void deleteNode(ListNode* node) { node->val = node->next->val; node->next = node->next->next; }};