-2

二分木に含まれる偶数値の数を調べる必要があります。

これは私のコードです。

private int countEven(BSTNode root){

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

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


}

これをテストする方法がないため、これをコーディングしました。現時点ではテストできませんが、答えが必要です。どんな助けでも大歓迎です。

4

2 に答える 2

1

偶数の値を持つサブノードを含む奇数の値を持つノードがある場合、サブノードはコードでカウントされません。以下の小さな強化。

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


}
于 2010-04-02T13:21:18.113 に答える
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;
}
于 2010-04-02T13:20:17.700 に答える