Это простой вопрос из LeetCode: Reverse LinkedList. У меня есть два одинаковых кода, и я не могу понять, в чем разница между двумя, но это приводит к разным результатам.
Сначала цикл пока дает правильный ответ, ноу второго неправильный ответ.Вместо temp = current
.затем я просто сохраняю current в temp и в последней строке цикла while правильно переключаю current в temp.next.Я думаю, что они должны дать тот же ответ, но когда ввод {1,2,3,4,5}
, тогда второе решение получило неправильный ответ {1}
.
ListNode reverse = null;
ListNode current = head;
while(current != null){
ListNode temp = current.next;
current.next = reverse;
reverse = current;
current = temp;
}
Вот второй цикл while.
while(current != null){
ListNode temp = current;
current.next = reverse;
reverse = current;
current = temp.next;
}