在C++中,删除单链表中的节点通常涉及以下步骤:
下面是一个示例代码,演示如何删除单链表中的节点:
#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的节点,最后打印出删除节点后的链表。