📅  最后修改于: 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指针,最后释放后继节点的内存。
此时,链表中的该节点已经被删除。