C++单链表的删除操作是怎样的

655Z技术栈 C/C++编程 10小时前 9

在C++中,删除单链表中的节点通常涉及以下步骤:

  1. 遍历链表,找到要删除的节点的前一个节点。
  2. 将前一个节点的next指针指向要删除节点的下一个节点。
  3. 释放要删除的节点的内存空间。

下面是一个示例代码,演示如何删除单链表中的节点:

#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的节点,最后打印出删除节点后的链表。

提供PHP及ThinkPHP框架的定制开发、代码优化,PHP修改、ThinkPHP修改。

邮箱:yvsm@163.com 微信:yvsm316 QQ:316430983
关闭

用微信“扫一扫”