使用迭代反向链接列表

时间:2018-08-13 10:01:21

标签: linked-list reverse

给出一个指向链接列表的指针,我试图使用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;
   }

但是,当我运行它时,会出现错误-“超过时间限制”。因此,某处可能存在无限循环,但我不知道在哪里。任何帮助将不胜感激。谢谢。

1 个答案:

答案 0 :(得分:0)

您尚未将头节点的下一个指针设置为null。 firstnode.next仍指向给定链表的第二个节点,这导致了无限循环。

Node cur = head.next;
Node prev = head;
prev.next = null; // add this