如果帮助到您,还请点个关注吧,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