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..![]()

Rispondi quotando
