单向链接删除某节点
要删除单向链表中的一个节点,需要执行以下步骤:
-
找到要删除的节点的前一个节点。可以从链表的头节点开始,遍历链表直到找到要删除的节点的前一个节点。
-
将前一个节点的 next 指针指向要删除节点的下一个节点。这样就可以将要删除的节点从链表中删除了。
-
如果要删除的节点是头节点,则需要特殊处理。可以将头节点指向要删除节点的下一个节点。
下面是一个示例代码:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
void deleteNode(ListNode* node) {
if (node == NULL) return;
if (node->next == NULL) {
delete node;
node = NULL;
} else {
ListNode* nextNode = node->next;
node->val = nextNode->val;
node->next = nextNode->next;
delete nextNode;
nextNode = NULL;
}
}
在上面的代码中,如果要删除的节点是头节点,则直接将头节点指向要删除节点的下一个节点。否则,将要删除节点的值替换为下一个节点的值,并将前一个节点的 next 指针指向下一个节点的下一个节点。最后,删除下一个节点。
原文地址: http://www.cveoy.top/t/topic/mDj 著作权归作者所有。请勿转载和采集!