При наличии связанного списка, как мне раздавить все более двух узлов, которые являются непрерывными и имеют одинаковое значение.например, 1-> 3-> 3-> 3-> 5-> 4-> 4-> 4-> 5-> 5-> 2-> 5 step1 раздавить 3 1-> 5-> 4-> 4->4-> 5-> 5-> 2-> 5 step2 crush 4 1-> 5-> 5-> 5-> 2-> 5 step3 crush 5 return 1-> 2-> 5 Я пробовал код ниже, но его возвращение1-> 5 -> -> 5-> 2-> 5
public void Crush()
{
Node prev = null, current = head;
if (head == null)
{
return;
}
prev = current;
while (current.next != null)
{
int k = 0;
while (current != null && current.next != null && current.data == current.next.data)
{
k++;
current = current.next;
}
if (k < 2)
{
// prev.next = current;
current = current.next;
}
else
{
prev.next = current.next;
current = current.next;
}
}
head = prev;
}