2014-09-04 79 views
0

這是我在bst中的高度函數。 cpp二進制搜索樹,高度

int IntBinaryTree::getHeight(TreeNode * nodePtr) 
{ 
    if(nodePtr = NULL) 
    return 0; 
    else 
    return (max(1+getHeight(nodePtr->left), 1+getHeight(nodePtr->right))); 
} 

當我在main()中調用它時。我有一個錯誤。

這是我的主要()

int main { 
    IntBinaryTree tree; 
    .... 
    tree. getHeight(); 
    return 0; 
} 
+1

什麼是錯誤。 – YoungJohn 2014-09-04 21:34:55

+0

難道你沒有將參數傳遞給你的函數嗎? – 2014-09-04 21:54:18

回答

3

你沒有說什麼錯誤,但看起來像發生變化:

if(nodePtr = NULL) 

if(nodePtr == NULL) 
      ^^ 

是你所需要的。

+1

由於這個原因,將比較結果寫爲'NULL == nodePtr'而不是'nodePtr == NULL'是一個好主意。 'NULL = nodePtr'(注意賦值操作符)不會編譯。 – Paul 2014-09-04 21:38:13

+0

@保羅,好點。 – 2014-09-04 21:39:15