Precisamos criar manualmente um destruidor para uma lista vinculada?

eu estou lendoAprendendo a ferrugem com listas vinculadas inteiramente demais e estou confuso sobre o porquê da lista vinculada (pilha)precisa de um destruidor.

Eu acho que quando o valor da lista está fora do escopo, a própria lista e todos os nós seriam limpos. É apenas para demonstração?

Eu tento comparar a versão com e sem destruidor manual e achei que a versão "sem destruidor" tem melhor desempenho:

for _ in 1..30000000 {
        let mut list = List::new();
        list.push(1);
        assert_eq!(list.pop(), Some(1));
}

Com destruidor manual:

real    0m11.216s
user    0m11.192s
sys     0m 0.020s

Sem destruidor manual:

real    0m9.071s
user    0m9.044s
sys     0m0.004s

questionAnswers(2)

yourAnswerToTheQuestion