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.

È stato utile?

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
scroll top