Question

Je dois savoir combien de valeurs encore sont contenues dans un arbre binaire.

est mon code.

private int countEven(BSTNode root){

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

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


}

ce que je viens de code que je n'ai pas un moyen de tester cela. Je ne suis pas en mesure de le tester au moment, mais besoin d'une réponse si mal. toute aide est grandement appréciée.

Était-ce utile?

La solution

S'il y a un nœud avec une valeur impaire contenant des valeurs sous-noeuds même, les sous-noeuds ne seront pas comptés dans votre code. Petite amélioration ci-dessous.

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


}

Autres conseils

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;
}
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top