Childer Sum 属性表示对于每个节点,数据值必须等于左子节点和右子节点的数据值之和。 我已经实现了一个递归函数,它检查二叉树是否满足属性。但代码为每棵树返回 1。 请帮忙看看逻辑是否有问题? :) 这是函数
int child_sum(struct tree *node)
{
if(node==NULL)
{
return 0;
}
if(node->left!=NULL && node->right!=NULL)
{
if(node->data=node->left->data+node->right->data)
{
return 1;
}
}
return child_sum(node->left) && child_sum(node->right);
}
最佳答案
if(node->data=node->left->data+node->right->data)
应该是 if(node->data==node->left ->数据+节点->右->数据)
注意==
。在你的例子中,它是赋值(=
),它总是正确的。
关于检查二叉树中的子代求和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18842428/