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;
}