所以我们在二元搜索树中计算节点的作业,但我们不允许使用全局变量或函数参数,因为我们得到了一个我们不应该改变的预制模板。我知道如何使用全局变量和函数参数来做到这一点,但我不知道如何在没有它的情况下这样做,因为我不能使用局部变量。
我的代码现在:
int count() const
{
int st = 1;
if (left != NULL) {
st++;
left->count();
}
if (right != NULL) {
st++;
right->count();
}
return st;
}
答案 0 :(得分:2)
您可以将递归调用提供的返回值总结为相应的子树(如果可用):
int count() const
{
if (left != NULL && right != NULL)
return 1+left->count()+right->count();
else if (left != NULL)
return 1+left->count();
else if (right != NULL)
return 1+right->count();
else
return 1;
}