一开始看到这题可能会毫无思路,但是仔细想想发现也是不难的。
大致思路:将被删除节点的后一个节点的val和next赋值给被删除节点
步骤:先用Next记录node的后一个节点,然后将Next的值赋给node,最后free(Next)
附上代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
struct ListNode* Next=node->next;
node->val=Next->val;
node->next=Next->next;
free(Next);
}