Пример связанного списка, упомянутый ранее в комментариях, написан неправильно, хотя он пропускает нечетные узлы и из-за этого повторяет только половину объема тех же данных. Неудивительно, что он добился таких замечательных результатов, возможно, быстрее с правильным кодом, но с той же разницей в%. Цикл устанавливает current = current.next один раз слишком много (как в цикле, так и в качестве условия цикла) каждой итерации, которая вызывает такое поведение.