В исходном коде задачи такая реализация метода
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().