Задан односвязанный список, например:
A -> B -> C -> ... -> X -> Y -> Z
Необходимо развернуть список, т.е, чтобы его крайний элемент стал первым, предпоследний вторым, и т.д, и в конце концов, первый элемент стал бы крайним элементом.
Z -> Y -> X -> ... -> C -> B -> A
Сложность: O(N), доступная память: O(1).
замечание: можно модифицировать исходный список.
внимание! комментарии содержат ответ.