8
/ \
4 12
/\ /\
3 6 2 1
/\ /\ //\
7 10 13 15 5 9 11
/
14
を持っている私は、彼は2つだけかを持っていることを必要とする(数12、このexempleで私が唯一の祖父を持つ、木の祖父を見つける必要があるどのように多くの祖父見つけます3人の孫)。、2つまたは3 grandchildrens
これは私がこれまで試したものです:
int T(struct node * tree){
int t = 0;
if (tree == NULL)
return 0;
if (tree->left && tree->right)
{ //In this case i check if we NOT have all the four grandchildrens.
if (!((tree->left->left) && (tree->left->right) && (tree->right->left) && (tree->right->right)))
{
t = 1 + T(tree->left) + T(tree->right);
T(tree->left);
T(tree->right);
}
else
{
T(tree->left);
T(tree->right);
}
}
return t;
}
残念ながら、それは動作しません...誰もがこれで私を助けることができますか?
戻り値を無視するとかなりの再帰呼び出しが行われます。 – molbdnilo
どうすれば修正できますか? – gogo
木はどれくらいバランスが取れていますか? 1人の子供しかいないが、2人の孫を持つことは可能ですか?もしそうなら、そのケースのために余分なコードが必要です。 – JSF