LeetCode-104:二叉树的最大深度-easy
1. 问题描述
给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
示例:
给定二叉树 [3,9,20,null,null,15,7],
返回它的最大深度 3 。
2. 解决方案
采用递归的思想。
- 先判断根节点是否为null,是,则返回0。
- 递归求解左右子树各自的最大深度。
- 返回两者中最大深度。
3. java源码实现
/**
* Definition for a binary tree node.
* public class TreeNode {
* int val;
* TreeNode left;
* TreeNode right;
* TreeNode(int x) { val = x; }
* }
*/
class Solution {
public int maxDepth(TreeNode root) {
// 先判断根节点是否为null,是,则返回0。
if(root == null){
return 0;
}
// 递归求解左右子树各自的最大深度。
int countLeft = 1;
int countRight = 1;
countLeft += maxDepth(root.left);
countRight += maxDepth(root.right);
// 返回两者中最大深度。
return Math.max(countRight, countLeft);
}
}
4. 总结
实际上就是两种情况,一种是判断根节点是否为空,另外就是求解左右子树的最大深度,返回最大值即可。
打不到我们的终将使我们变得更强