237. Delete Node in a Linked List(C语言版本)

来源:互联网 发布:数据库系统的二级映射 编辑:程序博客网 时间:2024/06/06 00:52

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 *temp;    temp = node->next;    node->val = temp->val;    node->next = temp->next;    free(temp);}


解释:这道题虽然让删除一个节点,参数就是那个要删除的节点,题中又指明要删除的节点不是最后一个节点,

     所以可以将该节点的后一个节点的值赋给该节点,删去后面那个节点。