我如何到达链表的下一个值



我正在尝试用javascript编写一个链表。我有一个类,一个构造函数和一个addtoLast 函数,它提供彼此之间的连接。

但是在addtoLast 函数中,我无法访问任何对象的">下一个"属性。

它说

无法在数字"x"上创建属性"next">

(x 作为链表的第一个值和头部(

代码是:

class LinkedList
{
    constructor()
    {
        this.head=[];
        this.next=null;
        this.length=0;
    }
    addtoLast(value)
    {
        if(this.head==null)
        {
            this.head=value;
            this.length++;
        }
        else
        {
            let now=this.head;
            let newNode=value;
            while(now.next!=null)
            now=now.next;
            now.next=newNode;   //it gives that error
            newNode.next=null;  //and it gives too!
            this.length++;
        }  
    }
}
//and my main function is:
let example = new LinkedList();
example.head = 3;
example.addtoLast(9);
document.write(example);

我将不胜感激任何评论:)

我修复了以下问题:

  1. this.head:它不应该是一个数组(否则列表有多个头(,它应该是一个对象,并且应该用null或{value:'',next:null}初始化。

  2. let newNode={'value':value, 'next':null};遵循与this.head相同的规则。

  3. example.head = 3;更改为example.head = {'value':3, 'next':null};PS:但是会导致列表的长度错误。

  4. 删除this.next=null,接下来应该是每个节点的一个属性。下面是一个工作示例。

class LinkedList
{
    constructor()
    {
        this.head=null;
        //this.next=null;
        this.length=0;
    }
    addtoLast(value)
    {
        if(!this.head)
        {
            this.head={'value':value, 'next':null};
            this.length++;
        }
        else
        {
            let now=this.head;
            let newNode={'value':value, 'next':null};
            while(now.next!=null)
            now=now.next;
            now.next=newNode;   //it gives that error
            newNode.next=null;  //and it gives too!
            this.length++;
        }  
    }
}
//and my main function is:
let example = new LinkedList();
//example.head = {'value':3, 'next':null};
example.addtoLast(3);
example.addtoLast(9);
example.addtoLast(10);
console.log(example);
document.write(example);

相关内容

  • 没有找到相关文章

最新更新