在LinkedList中向后移动的语法?

use*_*390 3 java doubly-linked-list

我知道LinkedLists是以双向链接的方式实现的,因此每个节点都有一个下一个和一个前一个指针.但是,我找不到用于访问先前节点的语法?我查看了java api,并且有一种向后迭代链表的方法.对我而言,暗示有一种简单的方法来访问先前的节点P:.

我正在尝试设计一个实验来证明LinkedLists不仅仅是一个单一链接列表,但我无法想到如何在没有在链表中向后移动的情况下这样做.

如果可能,请向我解释如何向后移动,非常感谢.

Jon*_*eet 8

LinkedList有一个listIterator(int)方法.所以你可以使用:

// Start at the end...
ListIterator<Foo> iterator = list.listIterator(list.size());
while (iterator.hasPrevious()) {
    Foo foo = iterator.previous();
}
Run Code Online (Sandbox Code Playgroud)

这并不能证明它是一个双向链表 - 例如,可以在单链表中非常低效地实现 - 但这就是我如何向后迭代链表.

  • @ user1476390:嗯,您可以将"向后迭代的时间"与"列表大小"进行对比 - 对于双向链表,该图应该是线性的. (2认同)