2017-02-26 70 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; 

你必须在每个级别递增的高度。