docs: def depth_score(self, n, m):
          """
          Calculates flaws in balancing the tree.
          :param n: size of tree
          :param m: number of Nodes in tree
          :rtype: real
          """
          if n == 0:
              return 0.0
  
          # dopt is the optimal maximum depth of the tree
          dopt = 1 + int(floor(l2(m)))
          f = 1 / float(1 + n - dopt)
          return f * self.depth_score_helper(1, dopt)