给定指向链表的指针,我正在尝试在java中使用迭代(非递归方法(反转链接。这是我的代码片段。
Node reverse(Node head)
{
Node cur = head.next;
Node prev = head;
Node nxt;
while(cur!=null){
nxt = cur.next;
cur.next = prev;
prev = cur;
cur = nxt;
}
return prev;
}
但是当我运行它时,它给出了错误 - "超出时间限制"。所以,某处可能有一个无限循环,但我无法弄清楚在哪里。任何帮助将不胜感激。谢谢。
您尚未将头节点的下一个指针设置为 null。 firstnode.next 仍然指向给定链接列表的第二个节点,这导致了无限循环。
Node cur = head.next;
Node prev = head;
prev.next = null; // add this