# class TreeNode:
#     def __init__(self, x):
#         self.val = x
#         self.left = None
#         self.right = None

#
# 
# @param pRootOfTree TreeNode类 
# @return TreeNode类
# 可以使用数组将中序遍历结点保存起来 然后再连接 不过需要开辟数组
# 递归调用栈
class Solution:
    def __init__(self) -> None:
        self.pre = None
        self.root = None

    def Convert(self , pRootOfTree ):
        # write code here
        if not pRootOfTree: return

        self.Convert(pRootOfTree.left)
        if self.root == None:
            self.root = pRootOfTree
        # 前一个结点不为空
        if self.pre != None:
            self.pre.right = pRootOfTree
            pRootOfTree.left = self.pre

        self.pre = pRootOfTree
        self.Convert(pRootOfTree.right)
        return self.root