给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。
说明: 叶子节点是指没有子节点的节点。
思路
(1)参见 剑指Offer-树-面试题55-1:二叉树的深度。
(2)之前没有理解到位每个结点是怎么进行长度计算的,说到底还是对树形结构的递归不通透。
解法1
时间复杂度: O(N),其中 N 是结点的数量,每个结点都会访问一次。
空间复杂度:在最糟糕的情况下,树是完全不平衡的,例如每个结点只剩下左子结点,递归将会被调用 N次(树的高度),因此保持调用栈的存储将是 O(N)。但在最好的情况下(树是完全平衡的),树的高度将是log(N)。因此,在这种情况下的空间复杂度将是 O(log(N))。 。
执行用时 :0 ms, 在所有 Java 提交中击败了100.00%的用户
内存消耗 :38.7 MB, 在所有 Java 提交中击败了15.