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 -> 4and you are given the third node with value 3, the linked list should become1 -> 2 -> 4after calling your function.结果是要删除的那个元素,而不是整个链表
思路
其实是把给出的待删除节点赋值为下一个节点,然后删除下一个节点
临时变量指向->next,然后赋值,最后free
代码
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* struct ListNode *next;
* };
*/
void deleteNode(struct ListNode* node) {
struct ListNode* tmp = node->next;
node->val = tmp ->val;
node->next = tmp->next;
free(tmp);
}
本文介绍如何在单链表中删除指定节点,不修改整个链表结构,仅通过给定节点指针进行操作。
1022

被折叠的 条评论
为什么被折叠?



