[Deslizar el banco de preguntas] Sword se refiere a la pregunta 15 de la pregunta de programación Offer_ (implementada por JavaScript), la lista enlazada está invertida.

Tema: Ingrese una lista vinculada, después de invertir la lista vinculada, genere el encabezado de la nueva lista vinculada.

Entrada: 1 → 2 → 3 → 4 → 5

Salida: 5 → 4 → 3 → 2 → 1

Ideas de resolución de problemas:

Defina tres variables pNode, pNext y pre.

1. pNext es igual a pNode.next, que es el segundo nodo.

2. pNode.next (el segundo nodo) es igual al puente pre

3. Pre es igual a pNode, lo que hace que el segundo nodo apunte al primer nodo.

 

4. pNode es igual a pNext. Deje que las tres variables sean iguales al segundo nodo, de modo que la siguiente transformación

 

El código final es el siguiente:

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function ReverseList(pHead)
{
    pNext = pHead;
    pNode = pHead;
    var pre = null
    
    while(pNode){
        pNext = pNode.next;
        pNode.next = pre;
        pre = pNode;
        pNode = pNext;
    }
    
    return pre;
}

Solución dos:

/*function ListNode(x){
    this.val = x;
    this.next = null;
}*/
function ReverseList(pHead)
{
    let newHead = null;
    while(pHead){
        let tmpNode= newHead;
        newHead = new ListNode(pHead.val);
        newHead.next = tmpNode;
        pHead = pHead.next;
    }
    return newHead;
}

 

Supongo que te gusta

Origin blog.csdn.net/weixin_42339197/article/details/99552772
Recomendado
Clasificación