给出一个指向链接列表的指针,我试图使用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;
}
但是,当我运行它时,会出现错误-“超过时间限制”。因此,某处可能存在无限循环,但我不知道在哪里。任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
您尚未将头节点的下一个指针设置为null。 firstnode.next仍指向给定链表的第二个节点,这导致了无限循环。
Node cur = head.next;
Node prev = head;
prev.next = null; // add this