Я пишу функцию, которая удаляет последовательные элементы с дубликатами данных.
например
Например, переходя в список
-> a-> b-> c-> c-> a-> b-> b-> b-> a-> нуль
должно привести к
-> a-> b-> c-> a-> b-> a-> нуль
Определение элемента списка и описание функции приведены ниже
struct litem {
char data;
litem* next;
};
Мо код выглядит как
int remove_dumplicates(litem *&list)
{
int count = 0;
struct litem * current = NULL;
current = list;
struct litem *deleteNode;
if (current == NULL ) return;
while(current->next != NULL)
{
if ( current->data == current->next->data) // check for the duplicates
{
count++;
deleteNode =current->next;
current>next= current->next->next;
delete deleteNode;
}
return (count);
}
}
Это правильный способ достижения желаемого результата?