Niuke Top101 JS implémente une liste liée inversée

décrire

Étant donné le nœud principal pHead d'une liste liée individuellement (le nœud principal a une valeur, par exemple, dans la figure ci-dessous, sa valeur est 1), la longueur est n, après avoir inversé la liste liée, renvoie la tête de la nouvelle liste liée liste.

Plage de données : 0\leq n\leq10000≤n≤1000

Exigences : complexité spatiale O(1)O(1) , complexité temporelle O(n)O(n) .

Par exemple, lors de la saisie de la liste chaînée {1,2,3},

Après inversion, la liste chaînée d'origine devient {3,2,1}, donc la sortie correspondante est {3,2,1}.

Le processus de conversion ci-dessus est illustré dans la figure ci-dessous :

Exemple 1

entrer:

{1,2,3}

valeur de retour :

{3,2,1}

Exemple 2

entrer:

{}

valeur de retour :

{}

illustrer:

Sorties de liste chaînée vides vides         

Code

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function ReverseList(pHead)
{
    // write code here
    let p1=null;
    let p2=null;
    while(pHead) {
    p1=pHead.next;
    pHead.next=p2;
    p2=pHead;
    pHead=p1;
    }
    return p2;
}
module.exports = {
    ReverseList : ReverseList
};

 Explication, en fait, la fonction du pointeur p1 est utilisée pour enregistrer la liste chaînée d'origine, et la fonction de p2 est utilisée pour stocker temporairement le résultat, p1=pHead.next; et pHead=p1; sont en fait utilisés pour déplacer le pointeur , le noyau est pHead.next =p2;p2=pHead ces deux lignes de code. Processus de mise en œuvre:

// 第1层循环:
   // p1: 2 -> 3 ->null
      p1 = pHead.next
   //* pHead: 1 -> null
      pHead.next = p2
   //* p2: 1 -> null
      p2 = pHead
   // pHead: 2 -> 3 ->null
      pHead = p1

// 第2层循环:
   // p1:  3 ->null
      p1 = pHead.next
   //* pHead: 2 -> 1 -> null
      pHead.next = p2
   //* p2: 2 -> 1 -> null
      p2 = pHead
   // pHead: 3 ->null
      pHead = p1

// 第3层循环:
   // p1: null
      p1 = pHead.next
   //* pHead: 3 -> 2 - >1 -> null
      pHead.next = p2
   //* p2: 3 -> 2 -> 1 -> null
      p2 = pHead
   // pHead: null
      pHead = p1

Je suppose que tu aimes

Origine blog.csdn.net/qq_43781887/article/details/128148560
conseillé
Classement