有没有一种方法可以让我在常数时间而不是线性时间内轻松地做到这一点 运行?

Is there a way I can make this easily run in constant time instead of linear time?

我是 java 算法和双向链表的新手。我一直在和他们一起玩耍,努力学习。在 O(1) 而不是 O(n) (它的双向链表)中制作此算法 运行 的最佳方法是什么?感谢您的帮助。

public void add(E e) {
    Node<E> cur = header;
    while(cur.next != trailer) {
        cur = cur.next;
    }
    
    Node<E> newNode = new Node<E>(e, cur, cur.next);
    cur.next = newNode;
    trailer.prev = newNode;
    size++;
}

改变

Node<E> cur = header;
while(cur.next != trailer) {
    cur = cur.next;
}

Node<E> cur = trailer.prev;