c'ho da scrivere un metodo togliFoglieNegative che mi modifica un albero binario eliminando tutte le foglie con valore negativo ed eventuali nodi non foglia con valori negativi devono rimanere al loro posto anche se, dopo la cura, diventano foglie; si suppone che l'albero abbia almeno 2 elementi.
il codice che ho prodotto è il seguente:
public static void togliFoglieNegative(BinNode<Integer> a){
if(a==null) return;
if((a!=null)&&((a.left==null)&&(a.right==null))){
if(a.key<0)a=null;}
if(a!=null){
togliFoglieNegative(a.left);
togliFoglieNegative(a.right);
}
}
premetto(se ce ne fosse bisogno) che BinNode<Integer> a è il mio albero binario.
lavorando su eclipse mi accorgo che il codice non produce alcun errore però al momento del test praticamente mi stampa lo stesso albero che ho dato in input senza alcuna modifica, mentre durante il debug pare eseguire tutte le operazioni correttamente.
potreste aiutarmi a capire dove sbaglio perchè ci sto perdendo il cervello..
grazie