bit bug lo que pusiste esta mal una lista CIRCULAR no tiene NIL el ultimo nodo apunta al primer nodo de la lista entonces de alguna manera lo tenes que limitar diciendo \"este es el primer nodo y de aca me manejo\" una vez que tenes el primer nodo haces el enganche del ultimo al primero y lo manejas como una lista enlazada normal.
Saludos
Buen codigo