求二叉树的高度是很经典的方法吧。
这里给出我的不规范代码。。

    int depth=0;
    int max=0;
    void preOrder(TreeNode* pRoot)
    {
        if(pRoot==NULL)
        {
            if(depth>max)
                max=depth;
            return;
        }
        depth+=1;
        preOrder(pRoot->left);
        preOrder(pRoot->right);
        depth-=1;
    }

书上的代码

 public int TreeDepth1(TreeNode pRoot)
    {
        if(pRoot == null){
            return 0;
        }
        int left = TreeDepth1(pRoot.getLeft());
        int right = TreeDepth1(pRoot.getRight());
        return Math.max(left, right) + 1;
    }