import java.util.*;

/*
 * public class TreeNode {
 *   int val = 0;
 *   TreeNode left = null;
 *   TreeNode right = null;
 *   public TreeNode(int val) {
 *     this.val = val;
 *   }
 * }
 */

public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param root TreeNode类
     * @return int整型
     */
    public int maxDepth (TreeNode root) {

        return  getDepth(root, 0);
    }


    public int getDepth(TreeNode root, int depthNum) {

         if (root == null ) {
            return 0;
        }
        if ( (root.left == null && root.right == null)) {
            return 1;
        }

        int leftDepth = maxDepth(root.left) ;
        int rightDepth = maxDepth(root.right) ;

        return 1+ Math.max(leftDepth, rightDepth);
    }
}

思路:二叉树 的终极解法,递归,分别计算 二叉树两边 即可