2012-12-10 181 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。剛纔說運行失敗,當它到達該線。我認爲這意味着存在分段錯誤。 –