No, ricadi nel mio primo caso, infatti ritorni un AlberoRicerca che deve essere il puntatore al primo nodo dell'albero e l'invocazione della funzione deve aggiornare il tuo puntatore:


AlberoRicerca albero;
TipoElemento X = ...
albero = Insert (X, albero);