LeetCode刷题之路:111. 二叉树的最小深度

如果帮助到您,还请点个关注吧,hahaha

给定一个二叉树,找出其最小深度。

最小深度是从根节点到最近叶子节点的最短路径上的节点数量。

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

示例 1:

输入:root = [3,9,20,null,null,15,7]
输出:2
示例 2:

输入:root = [2,null,3,null,4,null,5,null,6]
输出:5

#最直观的思路
一共分三种情况:
当节点的左右孩子都为空时,直接返回0
当节点的左右孩子有一个为空时,则返回不为空的孩子的深度
当节点的左右孩子都不为空时,则返回深度比较小的那个深度值

class Solution:
    def minDepth(self, root: TreeNode) -> int:
        if not root:
            return 0
        a = self.minDepth(root.left)
        b = self.minDepth(root.right)
        return a + b + 1 if root.left == None or root.right == None else min(a, b) + 1

猜你喜欢

转载自blog.csdn.net/as812252319/article/details/112597802