質問

私は、バイナリツリーに含まれているどのように多くの偶数値を知る必要があります。

これは私のコードです。

private int countEven(BSTNode root){

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

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


}

この私はちょうど私がこのアウトをテストする方法を持っていないとしてコード化されました。私は、現時点ではそれをテストすることはできないんだけどひどく答えを必要とします。 任意のヘルプは深く感謝されます。

役に立ちましたか?

解決

偶数値とサブノードを含む奇数の値を持つノードが存在する場合、

、サブノードは、コード内でカウントされません。以下小さなエンハンスメント。

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


}

他のヒント

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;
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top