code: def get_trees(self, start, end):
      # recursive solve this problem
      res = []
      if start > end:
          res.append(None)
          return res
      for i in range(start, end + 1):
          lefts = self.get_trees(start, i - 1)
          rights = self.get_trees(i + 1, end)
          for j in range(len(lefts)):
              for k in range(len(rights)):
                  # root point
                  root = TreeNode(i)
                  root.left = lefts[j]
                  root.right = rights[k]
                  res.append(root)
      return res
  
label_desc: Use image node_id 2 for calling the Solution obj's underlying member method code with example usage: obj.get_trees(start, end) and returns: res, res