Встречается на собеседованиях • сегодня
Почему удаление последнего элемента в 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).

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы