Вы ничего не пропустили. Рекурсивная сортировка слиянием занимает O(log(n))
пробел. Тем не менее, проверка leetcode на эффективность использования пространства не в состоянии определить разницу между O(1)
и O(log(n))
- все, что они делают, это ограничивают память, запускают ее и видят, что она не взорвалась.
Если данные были в массиве, существует несколько эффективных решений, которые занимают O(1)
дополнительного пространства. Самым простым из них является heapsort.
Тем не менее, с помощью односвязного списка, я сомневаюсь, что есть ответ, который на самом деле O(1)
пробел.
ОБНОВЛЕНИЕ
Несмотря на то, что я сомневаюсь, это возможно. См. Комментарий Джима Мишеля.