У меня есть связанный список, я хотел проверить, есть ли в строке 3 узла с одинаковыми данными / значением, и если да, я хочу удалить их из списка.
ex. 1, 2, 3, 4, 4, 4, 7, 5;// здесь из индекса 3-5 есть то же значение, тогда новый список будет новый список: 1, 2, 3, 7, 5
это мой код, я только что получилзапутался в том, как отслеживать 2 предыдущих значения, чтобы я мог сопоставить их с узлом, на который указывает текущий указатель.
// предположим, что остальная часть моего кода работает нормально
void Remove_ThreeDuplicates()
{
Node *current= head;
Node *prev = current;
Node *prev_prev = prev;
//keep track of identical found
int i = 0;
while(current->next != NULL)
{
prev_prev =head_ptr;
prev = prev_prev->Next;
current = prev->Next;
//checks if nodes are identical
if(prev_prev->data == prev->data && prev->data == current->data)
{
//remove the 3 identical nodes
prev_prev = current->next;
i++;
}
}
cout<<i<<" three pairs of identical node found\n"l;
}