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

思路
对于二叉树深度问题,深度为左右子树深度最大值加1
depth = max(left_depth, right_depth)+1
二叉树问题考虑递归方法,通过递归获取左右子树深度,选取最大值
完整代码
class Solution:def maxDepth(self, root: TreeNode) -> int:if not root:return 0else:left = self.maxDepth(root.left)right = self.maxDepth(root.right)return max(left, right)+1
复杂度分析
时间复杂度:
会遍历每一个结点,所以为O(n)
空间复杂度:
O(height),其中 height 表示二叉树的高度。递归函数需要栈空间,而栈空间取决于递归的深度,因此空间复杂度等价于二叉树的高度。





![[剑指Offer]-二叉树的深度](https://img-blog.csdnimg.cn/20190518184025683.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3UwMTE1ODMzMTY=,size_16,color_FFFFFF,t_70)












