https://leetcode-cn.com/problems/flatten-binary-tree-to-linked-list/submissions/
class Solution:
def flatten(self, root):
"""
:type root: TreeNode
:rtype: void Do not return anything, modify root in-place instead.
"""
if not root:
return
#后序遍历格式,递归左右子树
self.flatten(root.left)
self.flatten(root.right)
#处理根节点
if root.left:
tmp = root.right #记录右子
root.right = root.left #构建新树
root.left = None #记得左子置空
node = root.right #找新树的最右下节点
while node.right:
node = node.right
node.right = tmp #将右子插入新树