C 二叉树

C 二叉树,c,binary-tree,C,Binary Tree,当且仅当当前节点的数据大于左根和右根之和时,让我们定义一个称为“最大树”的二叉树 例如: 不是最大树: 没有辅助函数,只有递归 原型是: int IsMaxTree(BitNode *root) 只是一个简单的递归,你可以解决这个问题 int IsMaxTree(BitNode *root) { int left; int right; if (root == NULL) { return 0; } left = IsMaxTree(

当且仅当当前节点的数据大于左根和右根之和时,让我们定义一个称为“最大树”的二叉树

例如:

不是最大树:

没有辅助函数,只有递归

原型是:

int IsMaxTree(BitNode *root)

只是一个简单的递归,你可以解决这个问题

int IsMaxTree(BitNode *root) {
    int left;
    int right;
    if (root == NULL) {
        return 0;
    }
    left = IsMaxTree(root->left);
    if (left == -1) {
        return -1;
    }
    right = IsMaxTree(root->right);
    if (right == -1) {
        return -1;
    }
    if (root.val > left + right) {
        return left + right + root.val;
    }
    else {
        return -1;
    }
}

最好不要通过在他们的家庭作业中发布完整的解决方案来鼓励此类问题。好吧,我不会再提供解决方案。这没什么大不了的,我的意思是(对于未来的问题),最好是引导他们自己解决问题,而不是发布完整的解决方案。我希望这是为了我的家庭作业,这是一个来自互联网的问题,我会在两天内为我的考试解决这些问题。。无论如何,这个函数不起作用,结果有时是错误的-1就是问题所在。但请你分析一下解决办法。作为程序员,你不能假设别人总是用勺子喂你。