在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的節點,最后打印出刪除節點后的鏈表。