2017-02-26 64 views
2

我對二叉樹和遞歸非常陌生。我的程序是找到樹的高度,但我有點困惑,爲什麼我的程序不工作。找到樹的深度?

struct Node { 
    int value; 
    Node *left; 
    Node *right; 
} 

int heightOfTree(Node node){ 
    if(node ==NULL) 
    { 
     return 0; 
    } 
    else 
    { 
     int lheight=heightOfTree(node->left); 
     int rheight = heightOfTree(node->right); 
     if(lheight>rheight) 
     { 
      return lheight; 
     } 
     else 
     { 
      return rheight; 
     } 
    } 
} 

我在網上僞造了一個僞碼,所以我自己實現了它,因爲我不想複製和粘貼。我試圖插入很多節點,但是當我運行我的程序時,我總是得到0高度?謝謝

+3

構建一個具有根節點和一個葉節點的樹,並手動執行代碼。 – Blender

回答

4
return lheight + 1; 

return rheight + 1; 

你必須在每個級別遞增的高度。