/*
struct TreeNode {
int val;
struct TreeNode *left;
struct TreeNode *right;
TreeNode(int x) :
val(x), left(NULL), right(NULL) {
}
};*/
class Solution {
public:
vector<TreeNode *> data;
TreeNode* Convert(TreeNode* pRootOfTree) {
if(pRootOfTree==NULL){
return NULL;
}
GetData(pRootOfTree);
for(int i=1;i<=data.size()-1;i+=1){
data[i]->left=data[i-1];
data[i-1]->right=data[i];
}
return data[0];
}
//使用中序遍历的方法
void GetData(TreeNode* tree){
if(tree==NULL){
return;
}
else{
if(tree->left!=NULL){
GetData(tree->left);
}
data.push_back(tree);
if(tree->right!=NULL){
GetData(tree->right);
}
}
}
};