给定一个二叉树,找出其最大深度。
二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
借助递归把问题拆分
1+左子树的最大深度+右子树的最大深度 的最大值
1.空树,深度为0
2.只有一个根节点,没有左右子树,深度1
3.1 + max(左子树的深度+右子树的深度)
/**
* 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) {
if(root == null){
return 0;
}
int leftDepth = maxDepth(root

该博客探讨了如何求解二叉树的最大深度,利用递归将问题拆分为根节点到左子树和右子树的最大深度之和。讨论了空树、只有一个根节点的情况以及常规情况的处理,并指出在某些实现中,是否加上1对于结果并无影响,只是递归次数的差别。同时,作者将这个问题与计算二叉树节点数量的相似性进行了比较。
最低0.47元/天 解锁文章
2644

被折叠的 条评论
为什么被折叠?



