Какая сложность вставки элемента в LinkedList

«Какая сложность вставки элемента в LinkedList» — вопрос из категории Алгоритмы и структуры данных, который задают на 26% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Вставка элемента в LinkedList имеет сложность O(1), если известен узел, после/перед которым нужно вставить элемент. Это связано с тем, что вставка требует лишь изменения ссылок соседних узлов.

Однако, если позиция вставки определяется по индексу, сложность становится O(n), так как требуется пройти по списку до нужного узла.

Пример:

val list = LinkedList<String>()
list.add("A")  // O(1) – вставка в конец
list.add(1, "B")  // O(n) – поиск позиции 1