繁体   English   中英

如何总结奇数节点? C程序

[英]How do I sum up the odd nodes? C program

如何返回树中所有奇数的总和? 我必须使用递归来求和吗?

这是我的代码:

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*并传递地址的方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM