Ciao a tutti, ho sempre la mia classe Binary tree e la classe Binary Nodo. Sta volta la classe BinaryNodo è composta dai seguenti campi:

int dato;
Nodo left;
Nodo right;
int contDouble;


Devo fare un metodo che scorre l'albero e ogni volta che incontro un Nodo con lo stesso valore devo incrementare il contDouble. Il mio probelma penso che sia che ogni qualvolta che dealloco lui vede il dato uguale e quindi incrementa sempre.


Questo è un esempio di come dovrebbe lavorare il metodo:

[IMG]

[/IMG]



Questo è il mio codice:

codice:
//CLASSE BINARY TREE

public void countDupl () { 
	if (root == null)
		throw new RuntimeException ("Albero vuoto");
	else
		root.countDupl();
}


//CLASSE BINARY NODE

public int countDupl () {
	if (left != null) {
		if (left.dato == dato)
			contDouble = left.contDouble+1;
		contDouble += left.countDupl();
	}
	if (right != null) {
		if (right.dato == dato)
			contDouble = right.contDouble+1;
		contDouble += right.countDupl();
	}
	return contDouble;
	}
}
Grazie!!