Java: contagem de valores uniformes em uma árvore de pesquisa binária recursivamente
-
24-09-2019 - |
Pergunta
Preciso descobrir quantos valores pares estão contidos em uma árvore binária.
Este é o meu código.
private int countEven(BSTNode root){
if ((root == null)|| (root.value%2==1))
return 0;
return 1+ countEven(root.left) + countEven(root.right);
}
Acabei de codificar, pois não tenho uma maneira de testar isso. Não consigo testá -lo no momento, mas preciso tanto de uma resposta. Qualquer ajuda é profundamente apreciada.
Solução
Se houver um nó com um valor ímpar que contém subnodos com valores uniformes, os subnodos não serão contados no seu código. Pequeno aprimoramento abaixo.
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);
}
Outras dicas
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 em: CC-BY-SA com atribuição
Não afiliado a StackOverflow