Este problema consiste en que, dado un árbol, se debe encontrar la profundidad mínima a la hoja más cercana (siendo una hoja un nodo sin hijos). Mi solución consistió en llevar un conteo entre cada búsqueda; es una solución de búsqueda en profundidad donde, cuando se encuentra un resultado, se regresa y cada nodo solo devuelve el menor resultado, por lo que al final se obtiene la profundidad mínima.
class Solution:
def recur(self,node,val):
if node is None:
return 99999999999999
val = val+1
if node.left is None and node.right is None:
return val
d1 = self.recur(node.left,val)
d2 = self.recur(node.right, val)
return min(d1,d2)
def minDepth(self, root: Optional[TreeNode]) -> int:
if root is None:
return 0
return self.recur(root,0)