Java: подсчет четных значений в двоичном дереве поиска рекурсивно - PullRequest
0 голосов
/ 02 апреля 2010

Мне нужно выяснить, сколько четных значений содержится в двоичном дереве.

это мой код.

private int countEven(BSTNode root){

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

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


}

это я только что написал, так как у меня нет способа проверить это. Я не могу проверить это сейчас, но мне так нужен ответ. любая помощь высоко ценится.

Ответы [ 2 ]

1 голос
/ 02 апреля 2010

Если существует узел с нечетным значением, содержащий подузлы с четными значениями, подузлы не будут учитываться в вашем коде. Небольшое улучшение ниже.

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


}
0 голосов
/ 02 апреля 2010
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...