В исходном коде задачи такая реализация метода
for (int i = 0; i < distance; i++) {
            list.add(0, list.get(list.size() - 1));
            list.remove(list.size() - 1);
        }
Почему удаляем элемент с индексом list.size()-1? Ведь после добавления размер списка увеличивается. И нам нужно удалить элемент под индексом list.size().