/* struct TreeNode { int val; struct TreeNode *left; struct TreeNode *right; TreeNode(int x) : val(x), left(NULL), right(NULL) { } };*/ class Solution { public: void _Convert(TreeNode* cur,TreeNode*& prev)//必须加引用才能保证只有一个prev { if(!cur)return ; _Convert(cur->left,prev); /// cur->left=prev; if(prev) prev->right=cur; prev=cur; _Convert(cur->right,prev); } TreeNode* Convert(TreeNode* root) { if(!root)return nullptr; TreeNode* prev=nullptr; _Convert(root,prev); TreeNode* ans=root; while(ans->left) ans=ans->left; return ans; } };