我正在尝试遍历Java的链表实现,并在常数时间内修改链表的每个元素。我知道链表的set()方法,但该操作是O(n)的。因此,如果我在循环中使用set()方法,它将是O(n^2),这不是我想要的。由于我正在遍历链表,我已经知道要修改其内容的节点的位置。有没有一种方法可以使用Java的LinkedList在常数时间内完成此操作?
我已经在自定义实现中多次完成了此操作,但我看不到在常数时间内完成此操作的方法。我尝试了下面的迭代,但我缺少某些东西。
我已经在自定义实现中多次完成了此操作,但我看不到在常数时间内完成此操作的方法。我尝试了下面的迭代,但我缺少某些东西。
LinkedList<String> list = new LinkedList<>();
list.add("A");
list.add("B");
list.add("C");
Iterator iterator = list.iterator();
while (iterator.hasNext()) {
iterator.remove();
iterator.set(); // using set() wouldn't be O(1)
}