Java: Count zelfs waarden in een binaire zoekboom recursief

stemmen
-2

Ik moet te weten komen hoeveel even waarden zijn opgenomen in een binaire boom.

dit is mijn code.

private int countEven(BSTNode root){

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

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


}

dit ik enkel gecodeerd als ik niet een manier om dit uit te testen. Ik ben niet in staat om het uit te testen op het moment, maar een antwoord nodig zo slecht. alle hulp wordt zeer gewaardeerd.

De vraag is gesteld op 02/04/2010 om 14:13
bron van user
In andere talen...                            


2 antwoorden

stemmen
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;
}
antwoordde op 02/04/2010 om 14:20
bron van user

stemmen
1

Bij een knooppunt met een oneven waarde die subnodes met even waarden, wordt de subnodes niet meegeteld in de code. Kleine enhancement hieronder.

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);


}
antwoordde op 02/04/2010 om 14:21
bron van user

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