gpt4 book ai didi

c - 如何对奇数节点求和? C程序

转载 作者:行者123 更新时间:2023-11-30 18:23:59 26 4
gpt4 key购买 nike

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

这是我的代码:

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);

您还可以修改总和。为此,您需要更改方法以合并 int* 并传递地址。

关于c - 如何对奇数节点求和? C程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47195826/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com