[英]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.