TreeNode* upsideDownBinaryTree(TreeNode* root) { if (!root || !root->left) return root; TreeNode *newRoot = upsideDownBinaryTree(root->left); root->left->left = root->right; root->left->right = root; root->left = NULL; root->right = NULL; return newRoot; }
TreeNode* upsideDownBinaryTree(TreeNode* root) { if (root == nullptr || root->left == nullptr) return root; TreeNode *parent = upsideDownBinaryTree(root->left); TreeNode *tmp = parent; while (tmp->right != nullptr) tmp = tmp->right; tmp->right = root; tmp->left = root->right; root->right = root->left = nullptr; return parent; }
TreeNode* upsideDownBinaryTree(TreeNode* root) { if(root==NULL||root->left==NULL) return root; TreeNode* left=root->left; TreeNode* right=root->right; TreeNode* newRoot=upsideDownBinaryTree(left); newRoot->right=root; newRoot->left=right; root->left=NULL; root->right=NULL; return newRoot; }