Clase C ++ de estilo RAII para nodos de listas vinculadas

Estoy jugando con listas enlazadas como un ejercicio en este momento.

Los ejemplos que estoy viendo en elCracking la entrevista de codificación el libro no tiene ninguna clase LinkedList (administrador), solo Nodos, y usted se aferra al Nodo principal en su función principal.

Busqué las implementaciones de C ++, pero la mayoría parece ser más de estilo C que C ++, es decir, no está orientada a objetos. Usan estructuras, no clases, y tienen un método estático para eliminar la lista, que debe recordar llamar explícitamente. Quería escribir una clase C ++ sensible al estilo RAII (La adquisición de recursos es la inicialización) con destructores razonables para manejar la desasignación de memoria, y quería usar solo una clase Node (sin clase LinkedList).

La única forma de ver este trabajo era que el destructor de Node eliminara el siguiente Nodo si había uno, pero he leído que este tipo de eliminación recursiva es una mala idea, porque terminas creando una pila de llamadas de la misma longitud que la lista enlazada.

Para resumir mi pregunta:

Si escribe una clase orientada a objetos para manejar listas vinculadas en C ++, ¿debe tener una clase LinkedList (administrador) que maneje la eliminación de los nodos de la lista en su destructor?Si no, ¿cómo lidiarías con la destrucción de los nodos?

¡Gracias!

Respuestas a la pregunta(1)

Su respuesta a la pregunta