leetcode[237]:Delete Node in a Linked List

来源:互联网 发布:黑马java基础班 网盘 编辑:程序博客网 时间:2024/05/16 14:06

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 *tmp;    if(!node) return NULL;    if(!node->next) node=NULL;    tmp=node->next;    node->val=node->next->val;    node->next=node->next->next;    free(tmp);}

找不到前驱,可以删除其后继,其后继的值赋予当前结点即可。

0 0
原创粉丝点击