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;
 }
Beispiel #2
0
 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;
    }