计算路径根到节点的总和等于一定数字的数量



我必须编写一个函数来计算二叉树从根到节点的路径数,其总和等于某个数字。我已经用 c++ 编写了下面的代码,但问题是即使有多个路径,它也只显示 1 条路径。你能帮我解决吗?谢谢!

int hasPathSum(struct node* node, int sum)
{
int count = 0;
if (node == NULL) {
return 0;
}
else {
int subSum = sum - node->data;
if (subSum == 0 && node->left == NULL && node->right == NULL)
count++;
if (node->left)
count = count || hasPathSum(node->left, subSum);
if (node->right)
count = count || hasPathSum(node->right, subSum);
}
return count;
}

我认为这就是您要求的,希望对您有所帮助

int hasPathSum(struct node* n, int sum, int certain_number)
{
if(n != nullptr){
sum += n->data;
if(n->left == nullptr && n->right == nullptr && sum == certain_number)
return 1;
else return hasPathSum(n->left, sum, certain_number) + hasPathSum(n->right, sum, certain_number)
}
return 0;
}

最新更新