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

#
# 
# @param pRootOfTree TreeNode类 
# @return TreeNode类
#
class Solution:
    def Convert(self , pRootOfTree ):
        # write code here
        if not pRootOfTree:
            return pRootOfTree 
        tmp=[]
        #中序遍历获得从小到大的排列
        def inOrder(pRoot,tmp):
            if not pRoot:
                return
            inOrder(pRoot.left, tmp)
            tmp.append(pRoot)
            inOrder(pRoot.right, tmp)
        inOrder(pRootOfTree, tmp)
        head=tmp[0]
        head.left=None
        tNode=head
        #再把排序的结点连接起来
        for i in range(len(tmp)-1):
            tmp[i].right=tmp[i+1]
            tmp[i+1].left=tmp[i]
        return tmp[0]