salve a tutti!

sto facendo qualche esercizio sugli alberi binari, creazione, stampa, e deallocazione dell'albero.
compilando nessun problema, ma al momento dell'esecuzione il programma, dopo l'inserimento dei dati, termina con 0 errori, non stampando però i valori dell'albero binario

la stamp del numero binario credo sia corretta e anche la deallocazione, ecco il codice:

funzione per creare nuovo nodo:

codice:
void crea_nuovo_nodo( albero* &start, int num ){
    albero* temp_p= start;
    albero* new_tree= new albero;


    while( temp_p != NULL )
    {
        if ( rand() % 2== 0 )
          temp_p= temp_p -> left;
        else
          temp_p= temp_p -> right;
    }


    new_tree -> info= num;
    new_tree -> left= NULL;
    new_tree -> right= NULL;
    temp_p= new_tree;
}
sono consapevole che esiste anche la funzione ricorsiva, sicuramente migliore in termini di prestazioni rispetto a questa, ma ho preferito andare sul facile all'inizio( anche se in un certo senso sarebbe stato più facile la ricorsiva, diciamo che questa possibilità è più comprensiva )

main:
codice:
main()
{
    albero* init= NULL;
    int n;


    srand( time( 0 ) );


    for( int l= 1; l <= 10; l++ )
    {
        cout << "inserisci il " << l << " numero:" << endl;
        cin >> n;


        crea_nuovo_nodo( init, n );
    }


    stampa_albero( init );
    cancella_lista( init );
}
l'algoritmo di stampa è corretto perchè uguale identico a quelli sul web...
non riesco a trovare il perchè..

grazie mille in anticipo!