BEX*_*BEX -1 c binary-tree nodes
如何返回树中所有奇数的总和?我必须使用递归来查找总和吗?
这是我的代码:
int sumOdd(BTreeNode *node)
{
    int sum = 0;
    if(node == NULL)
        return 0;
    else{
        if((node->item % 2) != 0)
            return sum = node->item +
                         sumOdd(node->left) +
                         sumOdd(node->right);
    }
    return sum;
}
这将是这样的 -
int sumOdd(BTreeNode *node)
{
    int sum = 0;
    if(node != NULL)
    {
        if((node->item % 2) != 0)
            sum += node->item;
        sum+=sumOdd(node->left);
        sum+=sumOdd(node->right);
    }
    return sum;
}
在计算子节点之前,您不需要返回.
你可以用单一方法完成,不需要重写另一个,因为正在解决相同的子问题.
你会这样称呼它
int sum = sumOdd(root);
你也可以修改sum.为此,您需要更改方法以合并int*和传递地址.