Ciao a tutti, ho creato un metodo che mi elimina le foglie che hanno il dato pari e questo metodo deve ritornare un int che indica quante foglie ho eliminato. Ho 2 problemi: il valore di ritorno è sempre 1 e mi cancella sempre e solo una foglia.. Ecco il mio codice:


codice:
//CLASSE BINARY TREE
public int eliminaFogliePari () {
	if (root == null)
		throw new RuntimeException ("Albero vuoto");
	else
		return root.eliminaFogliePari();
	
}





//CLASSE BINARY NODE
public int eliminaFogliePari () {
	int risp = 0;
	if (left != null && right != null)
		return risp += left.eliminaFogliePari() + right.eliminaFogliePari();
	if (left != null && left.isALeaf() && left.dato%2 == 0) {
		left = null;
		risp++;
		return risp;
	}
	if (right != null && right.isALeaf() && right.dato%2 == 0) {
		right = null;
		risp++;
		return risp;
	}
	return risp;
}

EDIT: scusa ma di oggi sono un po' cotto..