解题思路就是遇见空节点返回0,其余的时候返回左右子树中高度的最大值,将这个最大值+1就是该树的高度。递归求解就可得出结果。
代码如下:
public int TreeHigh(TreeNode pRoot)
{
if(pRoot==null)//若二叉树为空,返回0
{
return 0;
}
int leftHigh=TreeHigh(pRoot.left);//若二叉树的高度不为空,求出左右子树的高度
int rightHigh=TreeHigh(pRoot.right);
if(leftHigh>=rightHigh)
{
return leftHigh+1;//当前二叉树的高度为左右子树最高的那个+1
}
return rightHigh+1;
}