Classe C ++ no estilo RAII para nós da lista vinculada

Estou jogando com listas vinculadas como um exercício no momento.

Os exemplos que estou vendo noQuebrando a entrevista de codificação book não tem nenhuma classe LinkedList (manager), apenas Nodes, e você segura o Node head em sua função principal.

Eu olhei para cima implementações C ++, mas a maioria parece ser mais de estilo C do que C + +, ou seja, não orientada a objeto. Eles usam estruturas, sem classes e têm um método estático para excluir a lista, que você precisa lembrar explicitamente de chamar. Eu queria escrever uma classe C ++ sensível ao estilo RAII (Resource Acquisition Is Initialization) com destruidores sensíveis para lidar com a desalocação de memória, e eu queria usar apenas uma classe Node (nenhuma classe LinkedList).

A única maneira que eu vi para ter este trabalho foi ter o destruidor do Nó deletando o próximo Nó se houvesse um, mas eu li que esse tipo de exclusão recursiva é uma má idéia, porque você acaba criando uma pilha de chamadas com o mesmo comprimento que a lista encadeada.

Então, para resumir minha pergunta:

Se você estiver escrevendo uma classe orientada a objetos para lidar com listas vinculadas em C ++, você precisa ter uma classe LinkedList (gerenciador) que manipule a exclusão dos nós da lista em seu destrutor?Se não, como você lidaria com a destruição de nós?

Obrigado!

questionAnswers(1)

yourAnswerToTheQuestion