【问题标题】:Linked List Descending Iteration with Insertion带插入的链表降序迭代
【发布时间】:2014-09-26 01:26:06
【问题描述】:

我想从末尾开始向后遍历 Java 链表。 Java 的 LinkedList 有一个方法 descendingIterator() ,它返回一个向后的迭代器。 但是,我还希望能够在迭代期间的任何位置动态地将恒定时间插入到列表中。 descendingIterator() 方法不返回 ListIterator,因此它不能执行插入。 在 Java 中是否有任何内置方法可以做到这一点,还是我只需要自己实现?

【问题讨论】:

  • 当然,我可以调用 LinkedList#listIterator() 并将列表的长度传递给它,但我相信这会在线性时间内运行,这似乎效率低下。

标签: java linked-list


【解决方案1】:
list.listIterator(list.size()-1);

可能是您正在寻找的。根据documentation,它不应该在线性时间内运行:

所有操作都按预期执行双重链接 列表。索引到列表中的操作将遍历列表 开始或结束,以更接近指定索引为准。

所以你可以认为 LinkedList 可以直接访问它的最后一个元素。

另见:https://stackoverflow.com/a/2765764/734151

您可能需要检查执行时间来验证这一点。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 2015-04-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多