Lectura
Cómo invertir una lista enlazada (Java, Python, PHP, C++, JavaScript)
Invertir una lista enlazada significa cambiar el orden de los nodos de la lista, de tal forma que los que estaban al final ahora están al inicio y viceversa.
El primer nodo se vuelve el último, el segundo el penúltimo y el que originalmente era el último, ahora se vuelve el primero.
Explicación del ejercicio Paso por paso
Código de la solución
Java
class Solution {
public ListNode reverseList(ListNode head) {
ListNode prev = null;
ListNode curr = head;
while (curr != null) {
ListNode nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
}
Python
class Solution(object):
def reverseList(self, head):
prev = None
curr = head
while curr:
next_temp = curr.next
curr.next = prev
prev = curr
curr = next_temp
return prev
PHP
class Solution {
/**
* @param ListNode $head
* @return ListNode
*/
function reverseList($head) {
$prev = null;
$curr = $head;
while ($curr !== null) {
$nextTemp = $curr->next;
$curr->next = $prev;
$prev = $curr;
$curr = $nextTemp;
}
return $prev;
}
}
C++
class Solution {
public:
ListNode* reverseList(ListNode* head) {
ListNode* prev = nullptr;
ListNode* curr = head;
while (curr != nullptr) {
ListNode* nextTemp = curr->next;
curr->next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
}
};
JavaScript
/**
* @param {ListNode} head
* @return {ListNode}
*/
var reverseList = function(head) {
let prev = null;
let curr = head;
while (curr !== null) {
let nextTemp = curr.next;
curr.next = prev;
prev = curr;
curr = nextTemp;
}
return prev;
};
Si te gustó el contenido, ¡visita mi canal de YouTube para ver más explicaciones sobre algoritmos y estructuras de datos!