第十题  简单的遍历 统计高度
/*
struct TreeNode {
    int val;
    struct TreeNode *left;
    struct TreeNode *right;
    TreeNode(int x) :
            val(x), left(NULL), right(NULL) {
    }
};*/
class Solution {
public:
    int TreeDepth(TreeNode* pRoot) {
        // 如果当前结点下面没有东西了
        // 叶结点 直接返回高度为0
        if (pRoot == NULL )
            return 0;
        // 单纯的深度优先遍历
        // 得到的值是左右子树的最大的高度
        int left_height = TreeDepth(pRoot->left);
        int right_height = TreeDepth(pRoot->right);
        // 左右子树选更高的 再加上自己这一层后返回
        int ans=left_height>right_height?left_height+1:right_height+1;
        return ans;
    }
};