我知道LinkedLists是以双向链接的方式实现的,因此每个节点都有一个下一个和一个前一个指针。但是,我无法找到用于访问先前节点的语法? 我查看了java api,并且有一种向后迭代链表的方法。 对我而言,暗示有一种简单的方法来访问先前的节点P:。
我正在尝试设计一个实验,以证明LinkedLists不仅仅是一个单一链接列表,但我无法思考如何在不在链接列表中向后移动的情况下这样做。
如果有可能请向我解释如何向后移动,非常感谢。
答案 0 :(得分:8)
LinkedList
有listIterator(int)
方法。所以你可以使用:
// Start at the end...
ListIterator<Foo> iterator = list.listIterator(list.size());
while (iterator.hasPrevious()) {
Foo foo = iterator.previous();
}
这并不是证明它是一个双向链接列表 - 例如,在单链表中可以非常低效地实现 - 但是这样做了我如何向后迭代链表。
答案 1 :(得分:3)
您可以调用LinkedList.listIterator(),它将返回一个可用于双向(下一个/上一个)的迭代器