//fast version

 

int Tree::BranchHeight(TreeNode *ptrNode)

{

 

       if (ptrNode == NULL)

              return 0;

       else

       {

              int lHight, rHight;

 

              lHight= BranchHeight(ptrNode->Left);

              rHight= BranchHeight(ptrNode->Right);

 

              if (lHight > rHight )

                     return lHight+1;

              else

                     return rHight+1;

 

       }

 

}

 

 

int Tree::Height()

{

       return BranchHeight(Root);

}