【发布时间】:2015-06-05 18:38:04
【问题描述】:
这就是我的代码的样子
int main() {
//root is the rootnode of the tree
if(root!==NULL) {
int mini = min(root, root->data);
printf("minimum number is %d", mini);
}
return 0;
}
int min(node *root, int mini) {
if(root == NULL) {
return;
}
min(root->left, mini);
min(root->right, mini);
if(mini > root->data) {
mini = root->data;
}
return mini;
}
它没有给我树中的最小数字。相反,它将根节点打印为最小值。
【问题讨论】:
-
min(root->left, mini);- 你认为这条线到底做了什么? -
不,那不是那行的作用……想想看,
min函数是做什么的? (或者至少,它应该做什么?) -
提示:为什么你的递归函数返回一个整数?被丢弃?
-
哦,是的!我正在丢弃它。相同的代码适用于以下两行。迷你=分钟(根->左,迷你); mini = min(root->right, mini);谢谢(y)
标签: c++ c recursion data-structures binary-tree