class Solution:
def flatten(self, root: TreeNode) -> None:
"""
Do not return anything, modify root in-place instead.
"""
if not root:
return
#后序遍历,先递归左右子树
self.flatten(root.left)
self.flatten(root.right)
#左右子树都已处理完毕
#若有左子,要插入右子;若左子为空,保持原状即可,不用操作
if root.left:
old_right = root.right #记录右子
root.right = root.left #插入
root.left = None #记得将左子置空
work = root.right
while work.right: #找到最右下结点
work = work.right
work.right = old_right #接上原右子
#不用返回