/**
 * struct TreeNode {
 *	int val;
 *	struct TreeNode *left;
 *	struct TreeNode *right;
 * };
 */

class Solution {
public:
    /**
     * 
     * @param root TreeNode类 
     * @return int整型
     */
    int maxDepth(TreeNode* root) {
        return root ? max(maxDepth(root->left), maxDepth(root->right)) + 1: 0;
    }
};

思路:递归。

* 树不存在,返回深度为0。

* 树存在,其最大深度为左右子树的最大深度加上他自己所占的一层。