Реализация метода void put(int i, T e) в двухсвязном списке LinkedList

В двусвязном списке необходимо раздвинуть список и вставить сюда свою ноду.

Возникли сложности в реализации. Указанный код не позволяет заменить значение с индексом "0" и пропадает элемент в середине списка. Не пойму, где ошибка?

public void putIndexValue(int i, T e) {
    if (i < 0 || i > size) {
        throw new IndexOutOfBoundsException ();
    } else {
        Node<T> node = getNode (i);
        Node<T> temp = new Node<> (e);

        if (node == last) {
            temp.next = null;
            last = temp;
        } else {
            temp.next = node.next;
            node.next.prev = temp;
        }
        temp.prev = node;
        node.next = temp;
   }
}

Ответы (0 шт):