题目描述:
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.
解题思路:
第一种是递归方法:每个二叉树的最大深度=左子树的最大深度和右子树的最大深度较大的那个+1,如图:
二叉树(一)中左子树的最大深度为1,只有一个黄色节点,右子树的最大深度为2,所以二叉树(一)的最大深度为2+1=3
二叉树(二)中左子树的最大深度为3,右子树的最大深度为2,所以二叉树的(二)的最大深度为3+1=4。代码也非常简洁。Java 1.8
/***
* 二叉树的最大深度,递归方法
* @param root
* @return
*/
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
第二种方法是层序遍历: