我有以下包含值[8,0,7]
的数组。我想为这些数组值构建一个单链列表,该列表以相同顺序排序。
我对于链表中的每个节点都有一个ListNode
对象,其中包含该值和一个指向链表中下一个节点的next
链接。目前,我用于构建链接列表的代码如下:
for(let i=0; i<results.length; i++){
console.log("n:",results[i])
if(!result){
result = new ListNode(results[i])
}else{
console.log("else",results[i])
result.next = new ListNode(results[i]);
}
}
由于某种原因,结果链接列表仅添加7
,而不添加0
。
[如果我的理解正确,您希望通过单个引用顺序链接ListNode
对象,在这种情况下,您需要使用附加到链接列表的最新result
更新ListNode()
参考,每次迭代:
/* Added to support code snippet only */
function ListNode(value) {
this.value = value;
this.next = '';
}
/* Input data */
const results = [8, 0, 7];
/* Track the latest list node appended to the linked list (ie, the head) */
let result = "";
for (let i = 0; i < results.length; i++) {
if (!result) {
result = new ListNode(results[i])
}
else {
result.next = new ListNode(results[i]);
console.log(`${result.value} -> ${result.next.value}`);
/* Update result reference to newly appended list node */
result = result.next
}
}
以更简洁的方式表达此链接过程的另一种方法是通过Array#reduce()
:
Array#reduce()