Merge two binary search trees into one without using any extra space.
Asked in the technical stage. Implement merge_bsts(root1, root2). Each tree is represented by nested mutable dictionaries with keys val, left, and right, or by None. Return a list containing all values in the merged BST's inorder order. The algorithm must use O(1) auxiliary space, excluding the returned list, and may reuse and modify the input nodes.
def merge_bsts(root1, root2):