237. 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;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
struct ListNode *aft = node->next ;
node->val = aft->val;
node->next = aft->next;
}