#include <iostream>
#include <set>
struct Node
{
int value;
Node *next;
Node(int data) : value(data), next(nullptr){};
};
void delRepeatNode(Node *head);
void print(Node *head);
bool find(const std::set<int> &set, int value);
int main()
{
Node n1(1);
Node n2(2);
Node n3(3);
Node n4(1);
Node n5(5);
Node n6(1);
Node n7(7);
Node n8(1);
n1.next = &n2;
n2.next = &n3;
n3.next = &n4;
n4.next = &n5;
n5.next = &n6;
n6.next = &n7;
n7.next = &n8;
std::set<int> set;
set.insert(15);
set.insert(5);
delRepeatNode(&n1);
print(&n1);
system("pause");
return 0;
}
void delRepeatNode(Node *head) //删除重复结点函数
{
if (head == nullptr)
{
return;
}
std::set<int> hash;
Node *pre = head;
Node *cur = head->next;
hash.ins
c++删除单链表指定值结点
最新推荐文章于 2024-07-17 06:18:39 发布
这篇博客介绍了一个C++程序,用于删除单链表中所有出现多次的值。程序使用了set数据结构来存储已遍历过的节点值,避免重复删除。主要函数包括delRepeatNode()用于删除重复节点,print()用于打印链表,以及find()辅助函数用于检查值是否在set中存在。
摘要由CSDN通过智能技术生成