思路:递归调用
递归返回值:返回以当前节点为根节点的二叉树的最小深度
递归出口:当根节点为空时,返回 0
单层递归逻辑:特殊情况处理:当前根节点没有左子树有右子树时,返回当前根节点右子树的最小深度 + 1;当前根节点没有右子树有左子树时,返回当前根节点左子树的最小深度 + 1。当前根节点既有右子树又有左子树时,返回 1 + 二者中小的那个。
class Solution(object):
def minDepth(self, root):
if root==None:
return 0
if root.left==None and root.right!=None:
return 1+self.minDepth(root.right)
if root.right==None and root.left!=None:
return 1+self.minDepth(root.left)
return 1+min(self.minDepth(root.left),self.minDepth(root.right))