A diferencia de los arreglos, donde los datos deben estar juntos en memoria (contiguos), una Lista Enlazada permite que los datos estén dispersos por toda la RAM. El "pegamento" que mantiene el orden lógico son los punteros.
Una lista simplemente enlazada se define por un solo puntero: la "cabeza" (head). Si pierdes la referencia a la cabeza, pierdes la lista completa. Cada nodo conoce al siguiente, pero nadie conoce al anterior.

Imagen 29. Inserción y eliminación lógica de nodos
Visualización de enlaces: Pasos críticos para "reconectar" los cables (punteros) al insertar o eliminar un nodo intermedio.
Las listas simples tienen un defecto: no pueden volver atrás. Las Listas Doblemente Enlazadas solucionan esto añadiendo un puntero "prev" (anterior) en cada nodo. Esto permite recorrer la lista en ambas direcciones, a cambio de usar más memoria.

Imagen 30. Estructura de una Lista Doblemente Enlazada
Anatomía del nodo doble: Observa los dos punteros salientes. El "prev" del primer nodo y el "next" del último siempre apuntan a NULL.
En una lista circular, no existe el final (NULL). El último nodo apunta de nuevo al primero. Esto es ideal para aplicaciones que requieren turnos rotativos, como el "Round Robin" en la planificación de procesos de un Sistema Operativo.

Imagen 31. Lista Circular Simplemente Enlazada
Representación gráfica: La flecha de retorno que convierte una línea en un círculo. Puede ser simple o doblemente enlazada.