这个题的思路很巧妙,要删除这个节点,那么就将该节点的下一个节点的值拿来赋给该节点,然后使用两个next跳过下一个节点即可,这样就达到了“删除”的效果。
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
struct ListNode* temp = node->next;
node->val = node->next->val;
node->next = node->next->next;
free(temp);
}