def query(self, root, s, e):
        if not root:
            return DEFAULT

        if s <= root.start and e >= root.end:
            return root.m

        if s >= root.end or e <= root.start:
            return DEFAULT

        l = self.query(root.left, s, e)
        r = self.query(root.right, s, e)
        return f(l, r)
:type root: Node
dataset/ETHPy150Open algorhythms/LintCode/Interval Minimum Number.py/SegmentTree.query