Node reverse(Node head) {
Node previous = null;
Node current = head;
Node forward;
while (current != null) {
forward = current.next;
current.next = previous;
previous = current;
current = forward;
}
return previous;
}
Как именно он переворачивает список? Я понимаю, что сначала он устанавливает второй узел на вперед
. Затем он говорит, что current.next
равен нулевому
узлу предыдущему
. Затем он говорит, что предыдущий
теперь текущий
. Наконец, текущий
становится вперед
?
Кажется, я не могу понять это и то, как это происходит в обратном направлении. Может кто-нибудь объяснить, как это работает?