2 votes

Insert into linked list and got TypeError : Impossible de définir la propriété 'next' d'undefined

Je construisais une liste de liens en utilisant javascript

mais j'ai obtenu une erreur dans la fonction d'insertion.

Quelqu'un pourrait-il m'aider à comprendre ce que je dois faire ?

La sortie devrait être [1,10,6,5,16]

La façon dont j'ai inséré la liste des liens, je me suis référé à ce qui suit site web

i changé

var node = new Node(element) ;

à

c valeur:valeur, next:null } ;

Voici mon JS :

class LinkedList {
  constructor(value) {
    this.head = {
      value: value,
      next: null
    };
    this.tail = this.head;
    this.length = 1;
  }
  append(value) {
    const newNode = { 
      value:value,
      next:null 
    }; // 1
    this.tail.next= newNode;
    this.tail = newNode  // 2
    this.length++;
    return this;
   }
  prehend(value){
    const newNode ={
    value:value,
    next:null
      };
    newNode.next = this.head;
    this.head = newNode;
    this.length++;
    return this;
     }
   printList() {
    const array = [];
    let currentNode = this.head;
    while(currentNode !== null){
         array.push(currentNode.value)
        currentNode = currentNode.next
    }
    return array;
    }
    insert(index, value){
    if(index>0&&index>this.length){
         return false
    }
    else{
      const newNode ={
       value:value,
       next:null
      };
     var curr,prev;
     curr=this.head;
     if(index=0){
        newNode.next=head;
        this.head=newNode;
     }else{
        curr=this.head;
        var it=0;
        while(it<index){
          it++;
         prev=curr;
         curr=curr.next;
         }
         newNode.next=curr;
         prev.next=newNode;
         }
         this.length++
         }
         return this.printList();
         }
 }
let myLinkedList = new LinkedList(10);
myLinkedList.append(5);
myLinkedList.append(16);
myLinkedList.prehend(1);
myLinkedList.insert(2, 6);
myLinkedList.printList();//should return [1,10,6,5,16]

0voto

yarons Points 4240

Vous avez une maladie if(index=0) qui fixe index à 0, ce qui casse votre code. Il aurait dû être if(index == 0) .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X