/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void answer(TreeNode*root,vector <int> &ans) { if(root) { answer(root->left,ans); ans.push_back(root->val); answer(root->right,ans); } } TreeNode* Convert(TreeNode* pRootOfTree) { vector <int> ans; answer(pRootOfTree,ans); int i=0; int len=ans.size(); if(len==0) { return NULL; } else { TreeNode*ans1=NULL; TreeNode*t=NULL; ans1=t=new TreeNode(ans[0]); for(i=1;i<len;i++) { t->right=new TreeNode(ans[i]); TreeNode*m=t; t=t->right; t->left=m; } ans1->left=NULL; t->right=NULL; return ans1; } return NULL; } };