【发布时间】:2013-05-15 22:07:28
【问题描述】:
我对以下代码有点困惑查找树的高度和递归查找sum of n nos的代码,它在下面。 lheight 和 rheight 存储什么,取决于它进行的递归次数?
int height(struct node* node)
{
if (node==NULL)
return 0;
else
{
lheight = height(node->left);
rheight = height(node->right);
if (lheight > rheight)
return(lheight+1);
else return(rheight+1);
}
}
这里还有一个澄清,它打印n nos的总和:
int findSum(int n){
int sum;
if(n <= 0) return 0;
else sum = n + findSum(n-1);
return sum;
}
如果我将其更改为:
int findSum(int n){
int sum;
if(n <= 0) return 0;
else sum = findSum(n-1); // here
return sum;
}
它将输出打印为 0。如果上面的树代码返回,为什么它不返回递归数?
【问题讨论】:
-
兄弟,我能理解递归逻辑,但我不明白上面的两个变量如何存储每个子树的级别......
-
阅读最佳答案并将示例与他的解释一起工作。一旦你完成了这两个,这将变得显而易见
-
是的,兄弟...我想你还不了解我...我确实理解了recusion,但对这两个变量有点困惑...请阅读我发表的评论
@Mohamed并解释我....
标签: c data-structures recursion