【问题标题】:Reverse of a Linked List using iteration使用迭代反转链表
【发布时间】:2019-01-20 00:47:25
【问题描述】:

给定一个指向链表的指针,我试图在 java 中使用迭代(非递归方法)来反转链接。这是我的代码 sn-p。

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

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

【问题讨论】:

    标签: linked-list reverse


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-10-08
      • 2021-06-27
      • 2012-11-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多