Salve ragazzi,


Ho un problema con la funzione inserimento di un albero binario:

Ho due classi:
-nodo con chiave puntatore sx e puntatore dx

-Una tree




Nella funzione inserisci:

Se uso get quando richiamo inserisci mi da errore "Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*"

codice:
Nodo* get_sx(){return sx;}

codice:
void tree::insert (Nodo* &nodo, int key)
{  
        while (nodo!=nullptr)
        {
            if(key<nodo->get_chiave())
            { 
   return inserisci(nodo->get_sx(),key);    //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*
            }
            
            if(key>nodo->get_chiave())
            {
                
 return inserisci(nodo->get_dx(),key);   //<--Non-const lvalue reference to type Nodo* cannot bind to a temporary of type Nodo*
            } 
        }
        if(nodo==nullptr)
        {
            Nodo* nuovo_n= new Nodo(key);
            nodo=nuovo_n;
        }   
}


Se invece rendo pubblico il nodo sinistro e destro e richiamo la funzione senza utilizzare get come segue
codice:
return inserisci(nodo->sx,nuovo);
non ho errori.

Qualcuno sa come posso, risolvere?

Ho provato anche a farlo iterativo ma non scrive i dati, ho provato con un puntatore d'appoggio e nemmeno ho avuto buoni risultati.

Grazie in anticipo.