Невозможно сказать наверняка, но вполне вероятно, что ваш список на самом деле содержит только один элемент; то есть код, который создает список, не работает.
Следует также отметить, что метод display
должен использовать локальную переменную для пошагового перемещения по элементам. Если вы используете переменную экземпляра (например, first
), вы можете получить различные методы, мешающие друг другу.
Наконец, ваш тест на конец списка неверен. Тщательно продумайте, на что указывают first
и first.link
при выполнении теста while
.