LC 0111 [E] Minimum Depth of Binary Tree - ALawliet/algorithms GitHub Wiki

# 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 root is None: return 0
        Q = deque()
        Q.append(root)
        minDepth = 0
        while Q:
            minDepth += 1
            levelSize = len(Q)
            for _ in range(levelSize):
                node = Q.popleft()
                if not node.left and not node.right:
                    return minDepth
                if node.left:
                    Q.append(node.left)
                if node.right:
                    Q.append(node.right)