Java: Tell selv verdier i et binært søketre rekursivt

stemmer
-2

Jeg trenger å finne ut hvor mange enda verdier finnes i et binært tre.

dette er min kode.

private int countEven(BSTNode root){

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

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


}

dette jeg bare kodet som jeg ikke har en måte å teste dette ut. Jeg er ikke i stand til å teste det ut i øyeblikket, men trenger et svar så dårlig. noen hjelp er høyt verdsatt.

Publisert på 02/04/2010 klokken 13:13
kilden bruker
På andre språk...                            


2 svar

stemmer
0
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;
}
Svarte 02/04/2010 kl. 13:20
kilden bruker

stemmer
1

Hvis det er en node med en merkelig verdi som inneholder subnodes med enda verdier, vil subnodes ikke telles i koden. Liten forbedring nedenfor.

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


}
Svarte 02/04/2010 kl. 13:21
kilden bruker

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more