所以当我在leetcode上运行这个代码时,它告诉我在列表节点中发现错误循环,但是我一生都不知道为什么。请帮忙,谢谢!
class Solution {
public ListNode reverseList(ListNode head) {
if (head.next == null || head == null) return head;
ListNode curr = head.next;
ListNode prev = head;
ListNode next = head.next.next;
while (curr != null) {
curr.next = prev;
prev = curr;
curr = next;
if (curr != null) next = curr.next;
}
return prev;
}
}
假设我们有以下链表:
A -> B -> C -> null
最初,prev=A
,curr=B
,和next=C
。
我们将追踪循环的第一次迭代:
当前。next=prev设置B
到A
的链接,所以现在我们的列表是:
A -> B -> A -> …
接下来的两个作业将prev
设置为B
和curr
设置为A
。
curr!=null
为true。Next=curr.next
将Next
设置为B
。
我们已经完全忘记了列表中的其他部分(从C
),这个循环将永远无法解决。
不管我知道为什么,因为我的头节点需要指向null,它仍然指向下一个元素,而不是null,所以在我的第一个和第二个节点之间有一个循环
作为一名链表数据结构的学习者,我正在练习Leetcode问题“反向链表”,我有自己的解决方案,但不知道为什么它是错误的,有专家可以分享一些指导吗?真的很感激! Leetcode问题: 反转单链接列表。 例: 输入:1- 输出: 5- 我的代码: 然而,上述解决方案是错误的,但可以通过在“temp.next=prev”和“head=head.next”之间切换位置进行纠正,如下所示: 对我来说,切换
请问上述代码的第70行换成第71行注释的内容时,为什么会造成死循环。 题目: https://www.acwing.com/problem/content/174/
问题内容: 这段代码使我凝视了几分钟: (这里的第137行) 我以前从未见过,而且我也不知道Java有一个“ loop”关键字(NetBeans甚至没有像关键字一样给它上色),并且它在JDK 6中可以很好地编译。 有什么解释? 问题答案: 它不是一个keyword,而是一个label。 用法:
本文向大家介绍手写代码:反转链表 (Java 版)相关面试题,主要包含被问及手写代码:反转链表 (Java 版)时的应答技巧和注意事项,需要的朋友参考一下 参考回答:
本文向大家介绍手写代码:反转链表相关面试题,主要包含被问及手写代码:反转链表时的应答技巧和注意事项,需要的朋友参考一下 参考回答:
这似乎与对象没有被实例化有关,尽管我不太明白为什么。有人知道出什么事了吗?