【发布时间】:2016-07-06 14:54:23
【问题描述】:
没有找到合适的标题,请原谅我, 反正
我正在尝试分析 BST 的递归函数,它返回 1。
经过我的错误计算,我得到的返回值为 0,我想了解我在这里做错了什么。
我们从main.c调用这样的函数:func_3(root, 9);
所以 sum = 9
这是代码块:
int func_3(struct node* node, int sum)
{
if (node == NULL)
return(sum == 0);
else
{
int subSum = sum - node->data;
return (func_3(node->left, subSum) || func_3(node->right, subSum));
}
}
我的计算: func(5,9) -> func3(3,4) -> func(1,1) -> 返回 subTree = sum = 0。
【问题讨论】:
-
请编辑问题以便正确显示缩进
-
@dear_tzvi 我不明白你的意思。
-
可能他们的意思是:正确缩进你的代码,这样它就不会是难以阅读的混乱。
-
@Lundin 我在这里看不到任何混乱。所有内容都已正确清晰地添加到帖子中。
-
@VladfromMoscow 这个函数试图查看是否有任何路径(根到叶节点)的值之和等于
sum
标签: c recursion tree binary-search-tree