Na função recursiva o meu programa está dando segmentation fault. O compilador acusa que o ponteiro que eu usei para percorrer a lista não foi inicializado. Na verdade eu inicializei o ponteiro dentro de um if, porque se eu inicializasse fora do if, toda vez que eu chamasse essa função recursiva o meu ponteiro iria ser modificado. Isso estragaria o valor do ponteiro.
Se eu usasse um ponteiro para o início da lista e outro para percorrê-la, como eu poderia inicializar sem estragar o valor armazenado?