Я себе сутки мозги ломал и не мог в голове логику уложить. Почему first u last хранят значения в .prev и .next? Они ведь могут хранить ссылки на сами объекты в чем проблема? Через сутки написапл как написал, все работает. Только решение не принимается. Решу конечно за счет подстановки правильного решения, но не считаю это правильным. Чтобы получить доступ к первому элементу нужно обратиться к методу next поля first. Но логика ведь говорит о том, что после перового идет второй элемент и тогда получается, что first.next это второй должен быть элемент, а никак не первый.