Given a binary tree, find its maximum depth.
The maximum depth is the number of nodes along the longest path from the root node down to the farthest leaf node.
/** * Definition for binary tree * public class TreeNode { * int val; * TreeNode left; * TreeNode right; * TreeNode(int x) { val = x; } * } */ public class Solution { public int maxDepth(TreeNode root) { // Start typing your Java solution below // DO NOT write main() function if(root == null) return 0; return maxDepth(root, 1); } public int maxDepth(TreeNode root, int depth){ if(root == null) return Integer.MIN_VALUE; if(root.left == null && root.right == null) return depth; int leftMinDepth = maxDepth(root.left, depth+1); int rightMinDepth = maxDepth(root.right, depth+1); return Math.max(leftMinDepth, rightMinDepth); } }
public class Solution { public int maxDepth(TreeNode root) { if(root == null) return 0; return 1+ Math.max(maxDepth(root.left),maxDepth(root.right)); } }