2017-06-20 107 views
0

我無法得到正確的答案。無法找出二叉樹的高度

int height(Node* root) { 
     // Write your code here. 
     if (root == NULL) 
     return 0; 

     // find the height of each subtree 
     int lh = height(root->left); 
     int rh = height(root->right); 

     return max(lh,rh)+1; 
} 
+2

你能給一個具體的例子失敗並告訴我們你期望什麼嗎? – doctorlove

+1

你的邏輯看起來不錯,但也許你有一個我沒有看到的C特定錯誤。 –

+0

歡迎來到Stack Overflow!當問題陳述簡單地說,「它不起作用」時,很難提供解決方案。請[編輯]您的問題,以更全面地描述您預期會發生什麼以及與實際結果有何不同。看[問]提示什麼是一個很好的解釋。 –

回答

0

我想你解決的問題是root被認爲是在高度爲0.這裏是更新的解決方案。

int height(Node* root) { 
    if (root == NULL) return 0; 
    if (root ->left== NULL && root->right== NULL) 
    return 0; 

    // find the height of each subtree 
    int lh = height(root->left); 
    int rh = height(root->right); 

    return max(lh,rh)+1; 

    // Write your code here. 
}