javascript - 从整数数组创建单链表

标签 javascript arrays data-structures linked-list

我在使用 JavaScript 获取整数数组并创建单链表时遇到问题。这听起来很简单,但是我在我拥有的功能中没有看到一些东西,我非常感谢您提供的任何帮助。

这是我用来创建节点的构造函数:

 function ListNode(val) {
     this.val = val;
     this.next = null;
 }

这是我正在编写的函数,它应该接受一个数组并从中创建一个链接列表。基本思想只是一个 while 循环,它会移走第一个值,直到没有任何东西可以移动:

var createLinkedList = function(array) {
    var head = new ListNode(parseInt(array[0]));
    array.shift();
    while(array.length) {
        var prev = new ListNode(parseInt(array[0]));
        head.next = head;
        prev = head;
        array.shift();
    }
    return head;
}

我尝试使用几个基本数组运行它,它总是只返回数组中的最后一个值而不是链接列表。有什么简单的东西我在这里没有看到吗?提前致谢。

最佳答案

问题不在于 array.shift,而在于如何在 while 循环内将节点链接在一起。

要将节点链接在一起,基本上您需要执行以下操作:

var new_node = new ListNode(parseInt(array[0]));
head.next = new_node;
new_node = new ListNode(parseInt(array[1]));
head.next.next = new_node;
new_node = new ListNode(parseInt(array[2]));
head.next.next.next = new_node;
.
.
.

我想你明白了。因此,您要做的是重新设计 while 循环,存储 tailNode 的引用,而不是调用 head.next.next.next.next.next = newNode,您可以在 while 循环内调用 tailNode.next = newNodetailNode = newNode

关于javascript - 从整数数组创建单链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645034/

相关文章:

javascript - for循环中的jquery动画函数

java - 如何将数据数组发送到 Parse Cloud Code?

android - 如何将静态字符串与 XML 字符串资源连接起来?

javascript - 单击按钮更改文本输入的文本

javascript - 将百分比值转换为 int

javascript - 如何像 mysql 一样从 jQuery 中的 json 或数组数据搜索名称

python - 如何对以集合为值的字典进行反向排序?

data-structures - List.permute 的性能

data-structures - 根据 Big-O 表示法对不同数据结构的不同操作的复杂性

javascript - 下拉列表中的选项卡-twitter bootstrap