Сложность пространства - это объем памяти, используемый алгоритмом в зависимости от размера ввода. Другими словами: если размер ввода изменился, сколько памяти будет использовать алгоритм?
Имеет ли вход связанного списка узел 1
, 10
узлов или 1000000
узлов алгоритм использует тот же объем памяти. Он использует постоянную сумму, потому что он только выделяет 3
переменных (постоянное число) - int i
, LinkedListNode p1
и LinkedListNode p2
.
ОБНОВЛЕНИЕ: Важно отметить, что p1
и p2
просто ссылка на один узел. Они инициализируются ссылкой на значение head
, которое будет просто первым узлом в списке. Эти две переменные не содержат сам весь список.
head
|
v
[node1] --> [node 2] --> [node 3] --> ..... --> [node n]
^ ^
| |
p1 p2
Обратите внимание на рисунке выше, что если бы у нас был 1 узел или 20 узлов, у вас все равно были бы только один p1
и p2
. Они могут ссылаться на разные узлы в разное время в алгоритме, но каждый из них может содержать только один узел.