Javascript链接列表指针

Javascript链接列表指针,javascript,pointers,singly-linked-list,Javascript,Pointers,Singly Linked List,我试图通过实现自己的LinkedList来理解Javascript的指针。ListNode类如下所示: 函数列表节点(val){ this.val=val; this.next=null; } 然后,我有一个函数来创建一个LinkedList,其中的数字从0到100: 函数fillList(){ 让输出=新的ListNode(); 设curr=输出; for(设i=0;i

我试图通过实现自己的LinkedList来理解Javascript的指针。
ListNode
类如下所示:

函数列表节点(val){
this.val=val;
this.next=null;
}
然后,我有一个函数来创建一个LinkedList,其中的数字从0到100:

函数fillList(){
让输出=新的ListNode();
设curr=输出;
for(设i=0;i<100;i++){
如果(当前){
curr.val=i;
}否则{
curr=新列表节点(i);
}
curr=curr.next;
}
返回输出;
}
问题是在
返回
之后,
输出
的值只有
0
。这意味着
for
循环不起作用,尤其是当将
curr
移动到其
curr.next
并为其分配
ListNode


逻辑对我来说似乎很好,出了什么问题?

Javascript没有指针,也许您指的是Javascript中的对象总是引用这一事实?因此,
this.next
是对对象的引用。您可以这样实现您的功能:

function fillList() {
  let output = new ListNode();
  let curr = output;

  for (let i = 0; i < 100; i++) {
    curr.val = i;
    curr.next = new ListNode();
    curr = curr.next;
  }

  return output;
}
函数fillList(){
让输出=新的ListNode();
设curr=输出;
for(设i=0;i<100;i++){
curr.val=i;
curr.next=新的ListNode();
curr=curr.next;
}
返回输出;
}

Javascript没有,因此上面的逻辑(在c/c++中工作)将无法工作。我现在理解它,因此因为
null
是一种值类型,而不是引用类型,请指定
curr=curr。下一步在创建对象之前将其转换为值类型。因此,它是不可参考的。谢谢。:)