“ JAVA内部链接列表”与“自定义链接列表”之间的时间复杂度比较

我正在JAVA的一个编码竞赛网站上研究算法。

无论如何,我遇到了可以使用链接列表解决的问题。

我决定使用JAVA的内部链接列表类,这是在代码中实现链接列表的最简单方法。

不幸的是,我得到了几个“超时”结果,而且我不知道如何使我的代码更快。

我找到了一个解决方案代码,并且我还发现作者实现了自己的Linked List类,并通过了所有测试用例。

这怎么可能发生?

JAVA的内部“链表”类是双链表,解决方案的“链表”也是如此。

谁能说出这两个链表之间的区别?

而且,为什么自定义链接列表更快?

提前致谢

(我在网络上找到的解决方案的链接列表的实现)

class NODE {
    char ch;
    NODE prev, next;

    NODE() { 
        ch = 0; 
        prev = null;
        next = null; 
    }

    NODE(char nc, NODE p) {
        ch = nc; 
        next = p; 
        prev = p.prev; 
        prev.next = this;
    }

    void del() {
        prev.next = next; 
        next.prev = prev;
    }
}

我的实现:

LinkedList<Character> screen = new LinkedList<>();

解决方案:

class LinkedList {
    NODE head, tail, cur;
    LINE() {
        head = new NODE();
        cur = tail = new NODE(); 
        head.next = tail; 
        tail.prev = head;
    }

    void insert(char ch) {
        cur.prev = new NODE(ch, cur);
    }

    void left() {
        if (cur.prev != head) cur = cur.prev;
    }

    void right() {
        if (cur != tail) cur = cur.next;
    }

    void del() {
        if (cur.prev != head) cur.prev.del();
    }

}

并遍历链表,删除项目,添加新项目等。