这是LeetCode的一个简单问题:反向链接列表
我有两个相似的代码,我不知道两者之间的区别,但它输出不同的结果。
第一个while循环得到正确答案,第二个while循环得到错误答案。
而不是temp = current下一步,我只是把电流存储到温度
在while循环的最后一行,我正确地将电流切换到temp.next。
我认为他们应该得到同样的答案
但当输入{1,2,3,4,5}时,第二个解得到了错误的答案。

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;
}

最佳答案

在第二个片段中,似乎current = temp.next从循环/开始或当前迭代的顶部将current设置为其next值-毕竟,没有人为temp.next分配任何内容。
但在temp = current之后,两者都是同一事物的名称,current.next = reverse会覆盖将需要且尚未保存的事物。

关于algorithm - 反向链表-链表工具,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56452625/

10-13 09:07