【leetcode】111:二叉樹的最小深度
阿新 • • 發佈:2021-10-13
本題目如下:
這題目和二叉樹的最大深度的題目有異曲同工之妙,程式碼如下:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def minDepth(self, root: TreeNode) -> int:if notroot: return 0 if not root.left and not root.right: return 1 min_depth = 10**10 if root.left: min_depth = min(min_depth, self.minDepth(root.left)) #得到左子樹的最小深度 if root.right: min_depth = min(min_depth, self.minDepth(root.right)) #得到右子樹的最小深度return min_depth+1
求解最大深度的程式碼:
# Definition for a binary tree node. # class TreeNode: # def __init__(self, val=0, left=None, right=None): # self.val = val # self.left = left # self.right = right class Solution: def maxDepth(self, root: TreeNode) -> int: ifroot==None: return 0 return 1+max(self.maxDepth(root.left),self.maxDepth(root.right))
一定要區分開這兩者之間的不同。