Я пытаюсь выполнить программу C для удаления дубликатов из сортированного связанного списка, и я использую простую концепцию прохождения списка из начального узла. При перемещении сравните каждый узел со следующим узлом. Если данные следующего узла совпадают с текущим узлом, я удаляю следующий узел.Удалите повторяющиеся элементы из отсортированного связанного списка
Мой код:
struct node *remove_dup(struct node *start)
{
struct node *p,*tmp;
p=start;
while(p!=NULL)
{
if(p->info==p->link->info)
{
tmp=p->link;
p->link=p->link->link;
free(tmp);
}
p=p->link;
}
return start;
}
Это не дает мне правильный ответ! Что случилось с моим исполнением? Является ли моя концепция неправильной?
Что такое пример ввода, который не дает правильного результата? – Xymostech
Оператор 'p = p-> link;' должен перейти в ветвь 'else'. – 2013-05-04 13:56:05
Есть ли ошибки, которые вы получаете? –