Копирование элементов из двусвязного списка в односвязный список

#java

Вопрос:

У меня есть пользовательский двусвязный список, и я хочу использовать расширенный цикл for для печати элементов за O(n) время. Поэтому я скопировал все элементы в односвязный список, но это занимает O(n*2) времени. Есть ли более эффективный способ копирования элементов?

Комментарии:

1. Повторение дважды связанного списка должно занять O(n) времени. Так и должно быть. Но вам не нужно копировать его, чтобы повторить. Почему вы не опубликовали никакого кода?

2. O(n) = O(n · 2) по определению (вы можете выбрать константы, чтобы оба выражения были равны)

3. Пожалуйста, предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.

Ответ №1:

Вам не нужно делать копию для печати элементов. Итерация связанного списка (двусвязного или нет) должна быть O(n):

 List myList = createMyDoublyLinkedList();
for (Object item : myList) {
    System.out.prointln(item);
}
 

Чтобы лучше понять ваш вопрос, вам нужно будет опубликовать код, который у вас есть.