Pregunta

Necesito averiguar cuántos valores aún están contenidos en un árbol binario.

Este es mi código.

private int countEven(BSTNode root){

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

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


}

este acabo de codificado como no tengo una manera de probar esto. No soy capaz de probarlo en el momento pero necesito una respuesta tan mal. cualquier ayuda es muy apreciada.

¿Fue útil?

Solución

Si hay un nodo con un valor impar que contiene subnodos con valores pares, los subnodos no se contará en el código. Pequeño mejora a continuación.

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


}

Otros consejos

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;
}
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top