Javaの:バイナリ検索ツリーを再帰的でさえ値をカウント
-
24-09-2019 - |
質問
私は、バイナリツリーに含まれているどのように多くの偶数値を知る必要があります。
これは私のコードです。
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;
}
所属していません StackOverflow