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);
}
};