Lo que se me ocurre es si, por ejemplo, quisiera hacer una funcion que haga que una lista sea igual a otra, hacer un void asi:
void copiar(Lista original, Lista copia){...};
Y ahi adentro copiar nodo por nodo. Se llamaria al procedimiento normalmente, asi:
copiar(l1, l2);
Ahora bien, al hablar de retornar (return) yo entiendo que tendria que quedar algo tal que asi:
l2 = copia(l1);
Y no con un cabezal void sino con uno Lista:
Lista copia(Lista l){
...
return listaCopia;}
Pero hasta donde se no es posible hacer esto ultimo en C++, entonces... como seria?
Saludos