struct TreeNode {
	int val;
	struct TreeNode *left;
	struct TreeNode *right;
	TreeNode(int x) :
			val(x), left(NULL), right(NULL) {
	}
};*/
class Solution {
public:
    TreeNode *head;
    TreeNode *pre;
    TreeNode* Convert(TreeNode* pRootOfTree) {
        if(!pRootOfTree)
            return NULL;
        Convert(pRootOfTree->left);
        if(!pre){
            pre=head=pRootOfTree;
        }
        else {
            pre->right=pRootOfTree;
            pRootOfTree->left=pre;
            pre=pRootOfTree;
        }
        Convert(pRootOfTree->right);
//         pre->right=pRootOfTree;
//         pRootOfTree->left=pre;
//         pre=pRootOfTree;
        return head;
    }
};