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 1 -> 2 -> 3 -> 4
is and you were given the third node with value 3
, the linked list should become 1 -> 2 -> 4
a Fter calling your function.
This problem let us delete a linked list of a node, more often different is, did not give us the starting point of the list, only give us a node to delete, and we have encountered the situation is not the same, we have to delete a node before the method is to have its previous node location, Then the next of its previous node is connected to the next one to be truncated, and then delete the node to be deleted. This problem is handled by first the value of the current node is overwritten with the value of the next node, and then we delete the next node, the code is as follows:
class Solution {public: void deletenode (listnode* node) { node-I val = node->next->val; *tmp = node->Next; Node->next = tmp->next; Delete tmp; }};
Leetcode all in one topic summary (continuous update ...)
[Leetcode] Delete node in a Linked list deletes a linked list of nodes