class Solution { public: TreeNode* dfs(TreeNode* pRootOfTree) { if (pRootOfTree == nullptr)return nullptr; TreeNode* le = dfs(pRootOfTree->left), *ri = dfs(pRootOfTree->right),*temp = le; if (temp != nullptr) { while (temp->right != nullptr)temp = temp->right; temp->right = pRootOfTree; pRootOfTree->left = temp; } else le=pRootOfTree; if (ri != nullptr)ri->left = pRootOfTree, pRootOfTree->right = ri; return le; } TreeNode* Convert(TreeNode* pRootOfTree) { if (pRootOfTree == nullptr)return nullptr; return dfs(pRootOfTree); } };