class Solution {
private:
TreeNode *upside;
public:
TreeNode *upsideDownBinaryTree(TreeNode *root) {
if (root)
helper(root);
return upside;
}
TreeNode* helper(TreeNode *root) {
if (root->left == NULL) {
upside = root;
return root;
}
TreeNode *parent = helper(root->left);
parent->right = root;
parent->left = root->right;
root->left = NULL;
root->right = NULL;
return root;
}
};