LeetCode-Tree-104-E:二叉树的最大深度

文章目录


给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。

说明: 叶子节点是指没有子节点的节点。

思路

(1)参见 剑指Offer-树-面试题55-1:二叉树的深度
(2)之前没有理解到位每个结点是怎么进行长度计算的,说到底还是对树形结构的递归不通透。
在这里插入图片描述

解法1

执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :38.7 MB, 在所有 Java 提交中击败了15.61%的用户

class Solution {

    public int maxDepth(TreeNode root) {

        if(root == null){
            return 0;
        }

        int left = maxDepth(root.left);
        int right = maxDepth(root.right);
        return Math.max(left, right) + 1;

    }
}

解法2

(1)每进去一层就执行+1,完美!

执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :37.7 MB, 在所有 Java 提交中击败了38.59%的用户

class Solution {

    int deepMax = 0;
    int deep = 0;

    public int maxDepth(TreeNode root) {

        if(root == null){
            return 0;
        }

        deep++;
        if(deep>deepMax){
            deepMax=deep;
        }
        
        maxDepth(root.left);
        maxDepth(root.right);
        deep--;

        return deepMax;
    }
}
发布了71 篇原创文章 · 获赞 16 · 访问量 1685

猜你喜欢

转载自blog.csdn.net/Xjheroin/article/details/104059457