javascript - 使用JavaScript反转链表,该功能不起作用

标签 javascript linked-list nodes reverse singly-linked-list

我制作了一个 Javascript 函数来反转链表。但该代码似乎产生了无限循环。请帮我找出错误。

reverse()
     {
        var current=this.head;
        var prevNext=current.next;
        this.tail.next=null;
        this.tail=current;
        while(current.next!==null)
        {
            var temp=prevNext;
          if(temp.next!==null)
            prevNext=temp.next;

            temp.next=current;
            current=temp;
        }
        this.head=current;
    }

最佳答案

您进入无限循环,因为在循环内您分配 temp.next,然后将其分配给 current,因此 current.next 始终不 null .

var current = this.head;
var previous = null;
var next = null;
while(current !== null)
{
  next = current.next;
  current.next = previous;
  previous = current;
  current = next;  
}
this.head = previous;

关于javascript - 使用JavaScript反转链表,该功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60507667/

相关文章:

javascript - JSON.解析得到 "Uncaught SyntaxError: Unexpected token h"

java - 为什么这个链表会让我的 IDE 崩溃?

c - 使用ADT的链表问题

c - 删除节点后打印结构链表时出错

nosql - Couchbase 中的节点可以超过 1024 个吗?

javascript - ES2015 模块化架构的标准方法是什么?

javascript - 在 AngularJS 中使用 $http 服务发布多个数组

javascript - JavaScript 中的数字值到数组

algorithm - 使用链表遍历二叉树

java - 在迭代期间交换集合