¿Cómo podemos almacenar los enlaces de una lista vinculada en una matriz dinámica?

No necesita punteros para implementar una lista vinculada, las referencias serán suficientes. Lo único que los punteros tienen sobre las referencias es que admiten aritmética de punteros, y las listas vinculadas no usan eso.

Pero si insiste, puede usar los índices de la lista como punteros:

Nodo de clase:
def __init __ (self, val, nxt):
self.val = val
self.nxt = nxt

memoria = []

def malloc (obj):
memoria.append (obj)
return len (memoria) – 1

def libre (addr):
memoria [addr] = Ninguno

def deref (addr):
memoria de retorno [addr]

Usado:

>>> p1 = malloc (Nodo (“hola”, Ninguno))
>>> p2 = malloc (Nodo (“adiós”, p1))
>>> p3 = malloc (Nodo (“bla”, p2))
>>> p1, p2, p3
(0, 1, 2)
>>> deref (deref (p3) .nxt) .val
‘adiós’
>>> deref (p2 – 1) .val
‘Hola’