给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
public class MaxDepth {
@Test
public void maxDepthTest() {
Assert.assertEquals(0, maxDepth(null));
TreeNode input = new TreeNode(1);
input.left = new TreeNode(9);
input.right = new TreeNode(20);
input.right.left = new TreeNode(15);
input.right.right = new TreeNode(7);
Assert.assertEquals(3, maxDepth(input));
}
public int maxDepth(TreeNode root) {
if (root == null) return 0;
int leftDepth = maxDepth(root.left);
int rigthDepth = maxDepth(root.right);
return leftDepth > rigthDepth ? (leftDepth+1) : (rigthDepth+1);
}
}