Given a binary tree, find its minimum depth.
The minimum depth is the number of nodes along, the shortest path from the root node to the nearest leaf node.
classSolution:#@param root, a tree node #@return An integerMINDEP =-1defmindepth (self, root):ifRoot isNone:return0 self.helper (Root,1) returnSELF.MINDEP#@param DEP, currently the first level defHelper (SELF,ROOT,DEP):ifRoot.left isNone andRoot.right isNone:ifSelf.mindep is-1: SELF.MINDEP=DEPelifSELF.MINDEP >Dep:self.minDep=DEPifDEP >= SELF.MINDEP andSelf.mindep is not-1: returnFalseifRoot.left is notNone:self.helper (ROOT.LEFT,DEP+1) ifRoot.right is notNone:self.helper (ROOT.RIGHT,DEP+1)
I'm using DFS, but I've set up a MINDEP global variable. This variable stores the smallest "leaf node-to-root distance", so when other branches traverse, check if DEP (current distance) is greater than MINDEP, and if it is greater than or equal, the traversal of the branch ends .
[Leetcode] Minimum Depth of Binary Tree, minimum distance to leaf node (python)