Я пытаюсь просто удалить дубликаты из связанного списка, поэтому, если список запущен как [1,1,2,3,4,4,4,5], тогда прилагаемый список будет [1,2,3, 4,5]. Код ниже.Удаление дубликатов из связанного списка в c?
struct node_h
{
int data;
struct node_h* next;
} node;
void remove_h(node* head)
{
while (head != NULL)
{
if (head->data == head->next->data)
{
if (head->next->next == NULL)
{
head->next = NULL;
}
else
{
head->next = head->next->next;
}
}
head = head->next;
}
}
Проблема в том, что это сегментирование неисправностей. Иногда.
Кроме того, вы никогда не «освобождаете узел, когда удаляете его из списка (вводя утечку памяти). –
У вас также есть утечка памяти –