用C++语言为有头结点的单链表类添加成员函数,完成删除重复结点值的功能。
时间: 2023-06-09 10:08:38 浏览: 83
可以通过以下代码实现:
```c
typedef struct Node {
int data;
struct Node *next;
} Node;
typedef struct LinkedList {
Node *head;
} LinkedList;
void LinkedList_delete_duplicates(LinkedList *list) {
Node *cur = list->head;
while (cur != NULL) {
Node *check = cur;
while (check->next != NULL) {
if (check->next->data == cur->data) {
Node *duplicate = check->next;
check->next = duplicate->next;
free(duplicate);
} else {
check = check->next;
}
}
cur = cur->next;
}
}
```
这段代码定义了单链表的结构,其中包含了数据和下一个节点的指针。接着定义了单链表的结构,包含了头指针。最后,我们定义了 `LinkedList_delete_duplicates` 函数,用于删除重复的节点。它通过使用两个嵌套循环来遍历列表,检查每个节点是否有重复项。如果找到重复项,则删除之。
阅读全文