在C++中,删除单链表中的节点通常涉及以下步骤:
遍历链表,找到要删除的节点的前一个节点。将前一个节点的next指针指向要删除节点的下一个节点。释放要删除的节点的内存空间。下面是一个示例代码,演示如何删除单链表中的节点:
#include <iostream>// 定义链表节点结构struct Node { int data; Node* next; Node(int val) : data(val), next(nullptr) {}};// 删除链表节点函数void deleteNode(Node* head, int val) { Node* prev = head; Node* current = head->next; while (current != nullptr) { if (current->data == val) { prev->next = current->next; delete current; break; } prev = current; current = current->next; }}// 打印链表函数void printList(Node* head) { Node* current = head->next; while (current != nullptr) { std::cout << current->data << " "; current = current->next; } std::cout << std::endl;}int main() { // 创建链表 Node* head = new Node(0); head->next = new Node(1); head->next->next = new Node(2); head->next->next->next = new Node(3); std::cout << "原始链表:"; printList(head); // 删除节点 deleteNode(head, 2); std::cout << "删除节点后的链表:"; printList(head); return 0;}以上代码首先定义了一个链表节点结构Node,然后实现了删除节点的函数deleteNode和打印链表的函数printList。在main函数中创建了一个包含四个节点的链表,然后删除了值为2的节点,最后打印出删除节点后的链表。