Java: Contar valores pares en un árbol binario de búsqueda de forma recursiva
-
24-09-2019 - |
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.
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