In-order traversal does not necessarily require left, middle, and right.
This solution also does not require a queue to store, using a stream, everything is natural.
class Solution:
def increasingBST(self, root: TreeNode) -> TreeNode:
def gen(root):
if not root:
return
yield from gen(root.right)
yield root.val
yield from gen(root.left)
return reduce(lambda ans, i: TreeNode(i, None, ans), gen(root), None)
'''
ans = None
for i in gen(root):
ans = TreeNode(i, None, ans)
return ans
'''
Translation: