【LeetCode】237. Delete Node in a Linked List
Delete Node in a Linked List
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.
后一个赋值给前一个,注意结尾的置空与删除。
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */ class Solution { public: void deleteNode(ListNode* node) { ListNode* cur = node; ListNode* post = cur->next; // except the tail, thus has access to the next while(true) { cur->val = post->val; if(post->next == NULL) { cur->next = NULL; return; } else { cur = post; post = post->next; } } } };