Принято вот такое решение: public String get(int index) { Node currentElement = first.next; int i = 0; while (i != index) { currentElement = currentElement.next; if (currentElement == null) { return null; } i++; } return currentElement.value; } Однако, правильней на случай пустого списка было бы вот так: public String get(int index) { Node currentElement = first.next; int i = 0; while (i != index) { if (currentElement == null) { return null; } currentElement = currentElement.next; i++; } return currentElement.value; } И почему-то не принималось вот такое решение: public String get(int index) { Node currentElement = first.next; int i = 0; while (i != index) { currentElement = currentElement.next; i++; } return currentElement == null ? null : currentElement.value; } Да, этот метод не эффективен, потому как бесполезно будет мусолить цикл while, если полученный индекс имеет, например, шестизначное значение. Но всё же валидатор должен был его принять, как мне кажется.