Lista enlazada en Python

Una lista enlazada es una estructura de datos que consiste en un conjunto de nodos que se enlazan entre sí. Cada nodo contiene un valor y una referencia al siguiente nodo.

     class Node:
    def __init__(self, value):
        self.value = value
        self.next = None

class LinkedList:
    def __init__(self):
        self.head = None
        self.tail = None

    def append(self, value):
        if self.head is None:
            self.head = Node(value)
            self.tail = self.head
            return
        self.tail.next = Node(value)
        self.tail = self.tail.next

    def to_list(self):
        out = []
        node = self.head
        while node:
            out.append(node.value)
            node = node.next
        return out