Встречается на собеседованиях • сегодня

Почему удаление последнего элемента в ArrayList и LinkedList займет одинаковое количество времени

Удаление последнего элемента в `ArrayList` и `LinkedList` действительно может занять одинаковое время, но причины разные: 1. **ArrayList**: - Доступ к последнему элементу за O(1) (по индексу). - Удаление происходит быстро, так как не требует сдвига элементов (если это не последний элемент). 2. **LinkedList**: - Если список двунаправленный (как в Java), удаление последнего элемента также O(1), так как есть ссылка на хвост (`tail`). Пример: ```java ArrayList arrayList = new ArrayList<>(); LinkedList linkedList = new LinkedList<>(); // Удаление последнего элемента arrayList.remove(arrayList.size() - 1); // O(1) linkedList.removeLast(); // O(1) ``` **Но**: если `LinkedList` однонаправленный, удаление последнего элемента будет O(n), так как нужно пройти весь список до предпоследнего элемента. В Java `LinkedList` двунаправленный, поэтому O(1).
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы