#define _CRT_SECURE_NO_WARNINGS 1
#include<stdlib.h>
#include<stdio.h>
// 结点类
struct ListNode {
int val;
struct ListNode* next;
};
// 需要实现的函数
void deleteDuplicates(struct ListNode* head);
struct ListNode* head, * temp;
int main() {
int amount;
// 读入数据
scanf("%d", &amount);
for (int i = 0; i < amount; i++) {
struct ListNode* input = (struct ListNode*)malloc(sizeof(struct ListNode));
scanf("%d", &(input->val));
if (i == 0) {
head = input;
temp = head;
}
else {
temp->next = input;
temp = temp->next;
}
if (i == amount - 1)
temp->next = NULL;
}
// 执行函数
deleteDuplicates(head);
// 输出
while (head != NULL) {
printf("%d ", head->val);
head = head->next;
}
}
// TODO: 在下方补全函数实现
void deleteDuplicates(struct ListNode* head)
{
struct ListNode* current = head;
while (current != NULL && current->next != NULL)
{
if (current->val == current->next->val)
{
current->next = current->next->next;
//明白了,相同的时候不能跳转
}
else
//什么时候该跳转,只有不同的时候才跳转
current = current->next;
}
}
(补充)链表删除重复的操作
最新推荐文章于 2024-09-12 19:02:20 发布