Leetcode104-二叉树的最大深度|刷题打卡

93 阅读1分钟

本文正在参与掘金团队号上线活动,点击 查看大厂春招职位

一、题目描述

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

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

示例:

给定二叉树 [3,9,20,null,null,15,7]

image.png

返回它的最大深度3

二、思路分析

1.树的总深度 = max(左子树深度,右子树深度) + 当前节点所在的一层深度

2.左子树深度 = max(左子树的左子树深度,左子树的右子树深度) + 当前节点所在的一层深度

3.右子树深度 = max(右子树的左子树深度,右子树的右子树深度) + 当前节点所在的一层深度

4.递归,直到节点为null

三、AC 代码

class Solution:
    def maxDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        l = self.maxDepth(root.left)
        r = self.maxDepth(root.right)
        return max(l,r) + 1

输出为:

image.png

四、总结

该题是一道利用深度优先搜索(DFS)实现代码的题。从这道题体会到,理论很简单,思路需打开