/*
struct TreeNode {
int val;
struct TreeNode left;
struct TreeNode right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};/
class Solution {
public:
TreeNodeprev=NULL;
void _Convert(TreeNode* cur)
{
if(cur==NULL)
return;
_Convert(cur->left);
cur->left= prev;
if(prev)
prev->right=cur;
prev=cur;
_Convert(cur->right);
}
TreeNode* Convert(TreeNode* pRootOfTree)
{
if(pRootOfTree == NULL)
return NULL;
_Convert(pRootOfTree);
TreeNode* head=pRootOfTree;
while(head&&head->left)
{
head=head->left;
}
return head;
}
};