我创建了一个布尔函数来验证表达式树中的叶节点。如果节点是任何运算符,则返回 false。否则,它应该返回 true。它递归地调用自己......这就是我认为的问题所在。你可以让布尔函数递归吗?这是我的功能
bool validate(tnode* node)
{
if(node == NULL)
{
cout<<"Node is null";
return false;
}
if(node->left == NULL && node->right==NULL)
{
cout<<node->key<<endl<<endl;
if(node->key == '+' || '-' || '*' || '/')
return false;
else
return true;
}
else
validate(node->left);
validate(node->right);
}
它实际上完美地打印出我所有叶节点的值,它们是:abcd 2 e 3。但是当我在我的主函数中运行它时,它总是返回错误。关于为什么的任何想法?