Métodos para Manipular Nodos en Listas Enlazadas
Clase 17 de 29 • Curso de Estructuras de Datos con JavaScript
Contenido del curso
Arrays y strings
- 4

Cómo funcionan arrays en memoria de JavaScript
07:23 min - 5

Construcción de Arrays con Clases en JavaScript
09:33 min - 6

Métodos pop y delete en arrays
16:01 min - 7
Playground: crea tu propia implementación de unshift
- 8
Playground: crea tu propia implementación de shift
- 9

Inmutabilidad de Strings y Almacenamiento en Memoria
02:42 min
Hash Table
Linked List
- 15

Estructuras de Datos: Listas Enlazadas en JavaScript
05:20 min - 16

Estructura y Creación de una Lista Enlazada Simple en JavaScript
10:03 min - 17

Métodos para Manipular Nodos en Listas Enlazadas
Viendo ahora - 18

Inserta nodos intermedios sin romper enlaces en JavaScript
16:08 min - 19

Doubly Linked List con punteros bidireccionales
07:51 min
Stacks
Queues
Trees
Graphs
Cierre
Domina la lógica de una linked list al implementar los métodos append y prepend para agregar nodos al final y al inicio. Conecta correctamente la cabeza, la cola y el puntero next para que la estructura crezca sin errores y valida la longitud paso a paso con pruebas simples.
¿Cómo agregar nodos al final con append?
Para que un nuevo nodo sea la nueva cola, la secuencia es directa: crear el nodo, enlazarlo con el tail.next y actualizar la cola. Así logras que el null final se reemplace por el nuevo nodo y la lista crezca de forma consistente.
class Node {
constructor(value) {
this.value = value;
this.next = null;
}
}
class LinkedList {
constructor(initialValue) {
const firstNode = new Node(initialValue);
this.head = firstNode;
this.tail = firstNode;
this.length = 1;
}
append(value) {
const newNode = new Node(value);
this.tail.next = newNode; // enlaza el último nodo actual con el nuevo
this.tail = newNode; // el nuevo nodo se convierte en la cola
this.length++;
return this;
}
}
¿Cuál es la lógica de tail.next y cola?
- Crear el nuevo nodo con el value que recibes.
- Asignar tail.next al nuevo nodo para colocarlo al final.
- Actualizar tail al nuevo nodo para que sea la cola.
- Incrementar length para reflejar el nuevo tamaño.
¿Cómo validar la estructura y la longitud?
- Verificar que la estructura existe con una longitud inicial de uno.
- Ejecutar append(2): la cabeza sigue siendo 1, la cola ahora es 2.
- Ejecutar append(3): la cola ahora es 3 y la cabeza permanece en 1.
- Observar el anidado: cada nodo tiene value y un next que apunta al siguiente o a null al final.
¿Cómo insertar al inicio con prepend?
Para agregar un nodo como nueva cabeza, primero lo conectas al inicio y luego actualizas la referencia de la cabeza. La clave: apuntar el newNode.next al head actual y después mover la cabeza al newNode.
class LinkedList {
// ... mismo constructor y Node que arriba
prepend(value) {
const newNode = new Node(value);
newNode.next = this.head; // conecta el nuevo nodo con la cabeza actual
this.head = newNode; // el nuevo nodo se convierte en la cabeza
this.length++;
return this;
}
}
¿Qué cambia en la cabeza y los pointers?
- El nuevo nodo apunta con next a la cabeza anterior.
- La referencia head pasa a ser el nuevo nodo.
- La cola no cambia si la lista ya tenía más de un nodo.
- La longitud aumenta en uno.
¿Qué se observa al probar con cero como nueva cabeza?
- Ejecutar prepend(0): la cabeza ahora es 0.
- La cola se mantiene en 1 si la lista era [1] antes.
- La longitud refleja el cambio: pasa a 2 tras el prepend.
¿Qué habilidades y keywords refuerzas con esta práctica?
Comprendes cómo modelar una linked list con una clase que mantiene referencias a head, tail y length, y cómo un nodo encapsula value y next. Practicas el manejo de pointers para insertar correctamente sin romper la estructura. Además, validas el estado tras cada operación con retornos tipo return this y pruebas en el navegador.
- Diseño de métodos: append para el final y prepend para el inicio.
- Manipulación de referencias: head, tail, next y su actualización ordenada.
- Pensamiento visual: crear un mapa mental de cómo cambia el null al enlazar un nuevo nodo.
- Verificación incremental: revisar longitud y anidado tras cada operación.
- Preparación para el reto: método insert para colocar un nodo en medio, pensando primero la lógica en papel.
Si ya implementaste tu método, comparte tu solución y explica cómo llegaste a ella: así todos aprendemos más rápido.