class Solution:
def flatten(self, root: Optional[TreeNode]) -> None:
def rec(node):
nonlocal curr
if node:
curr.right = node
curr = curr.right
left, right = curr.left, curr.right
curr.left = curr.right = None
rec(left)
rec(right)
sentinel = curr = TreeNode(None)
rec(root)
return sentinel.right