📌  相关文章
📜  给定一个指向单向链表中要删除的节点的指针,如何删除它?(1)

📅  最后修改于: 2023-12-03 14:56:52.831000             🧑  作者: Mango

删除单向链表中的节点

在单向链表中,如果要删除某个节点,需要将该节点的前驱节点的next指针指向该节点的后继节点,然后再删除该节点。

如果给定一个指向要删除节点的指针,则可以直接修改其前驱节点的next指针,然后释放该节点的内存。

以下是一个示例代码:

struct ListNode {
    int val;
    struct ListNode *next;
};

void deleteNode(struct ListNode* node) {
    if (node == NULL) return; // 如果节点为空,直接返回

    struct ListNode* next = node->next;
    node->val = next->val;
    node->next = next->next;
    free(next);
}

其中,node为要删除的节点的指针,首先保存该节点的后继节点,然后将该节点的值和next指针修改为其后继节点的值和next指针,最后释放后继节点的内存。

此时,链表中的该节点已经被删除。