先用中序遍历 然后是遍历是把 节点加入到列表中 而不是加入节点的值 。然后生成双链表。

    def Convert(self , pRootOfTree ):
        if pRootOfTree is None:return None
        def proorder(root):
            res,stack =[],[]
            while stack or root:
                while root:
                    stack.append(root)
                    root=root.left
                node=stack.pop()
                res.append(node)
                root=node.right
            return res
        res=proorder(pRootOfTree)
        if len(res)==1:
            return res[0]
        for i in range(len(res)-1):
            res[i].right=res[i+1]
            res[i+1].left=res[i]
        return res[0]