2012-12-10 182 views
0

的最小值我不明白这是怎么不工作:最大和二叉树

Node* BST::Minimum(Node *curr) { 

    if (curr->left != NULL) { 
     Minimum(curr->left); 
    } 

    return curr; 

} 

我的意思是我已经没有插入的罚款,并printpostorder,inorderr,序罚款。

我在做些傻事吗? 这只是打印根节点。

回答

2

您致电Minimum并将其返回值丢弃。你想要return Minimum(curr->left);

顺便说一句,我强烈建议这样做迭代,而不是递归,就像这样:

Node* node = curr; 
    while (node->left != NULL) 
     node = node->left; 
    return node; 
+0

嗯,我把它改为:如果(!curr->左= NULL){ 回报(最低(CURR - 左>)); }但是当它执行这条线时,它只是说运行失败。 –

+0

说“运行失败”的“it”是什么?这是一种提交系统来验证你的输出吗? –

+0

使用cygwin和g ++和netbeans。刚才说运行失败,当它到达该线。我认为这意味着存在分段错误。 –