Java: Zählen Sie sogar Werte in einem binären Suchbaum rekursiv

stimmen
-2

Ich brauche, um herauszufinden, wie viele sogar Werte werden in einem binären Baum enthalten ist.

dies ist mein Code.

private int countEven(BSTNode root){

if ((root == null)|| (root.value%2==1))
return 0;

return 1+ countEven(root.left) + countEven(root.right);


}

dies i nur codiert, wie ich dies nicht eine Möglichkeit haben, zu testen. Ich bin nicht in der Lage zu testen im Moment, sondern brauche eine so schlecht Antwort. jede Hilfe ist sehr geschätzt.

Veröffentlicht am 02/04/2010 um 14:13
quelle vom benutzer
In anderen Sprachen...                            


2 antworten

stimmen
0
private int countEven(BSTNode root) {
   if (root == null)
      return 0;

   int n = countEven(root.left) + countEven(root.right);
   if(root.value % 2 == 0)
      return n + 1;
   else
      return n;
}
Beantwortet am 02/04/2010 um 14:20
quelle vom benutzer

stimmen
1

Wenn ein Knoten mit einem ungeraden Wert untergeordneten Knoten mit geraden Werten enthält, werden die untergeordneten Knoten nicht in Ihrem Code gezählt werden. Kleine Erweiterung unten.

private int countEven(BSTNode root){

  if (root == null)
    return 0;

  int val = (root.value%2==1) ? 0 : 1;

  return val + countEven(root.left) + countEven(root.right);


}
Beantwortet am 02/04/2010 um 14:21
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more