Java: Count valori anche in un binario di ricerca in modo ricorsivo albero
-
24-09-2019 - |
Domanda
Ho bisogno di scoprire quanti valori ancora contenuti in un albero binario.
Questo è il mio codice.
private int countEven(BSTNode root){
if ((root == null)|| (root.value%2==1))
return 0;
return 1+ countEven(root.left) + countEven(root.right);
}
questo ho appena codificato come non ho un modo per testare il tutto. Io non sono in grado di verificare il lavoro svolto al momento, ma bisogno di una risposta così male. ogni aiuto è molto apprezzato.
Soluzione
Se v'è un nodo con un valore dispari che contiene sotto-nodi con valori pari, i sottonodi non verrà conteggiato nel codice. Piccolo aumento di seguito.
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);
}
Altri suggerimenti
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;
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow