Check readable code short and crisp
\n    bool flipEquiv(TreeNode root1, TreeNode root2) {\n        if(root1==NULL && root2==NULL) return true;\n        if(root1==NULL || root2==NULL ||root1->val 
\n    bool flipEquiv(TreeNode* root1, TreeNode* root2) {\n        if(root1==NULL && root2==NULL) return true;\n        if(root1==NULL || root2==NULL ||root1->val != root2->val) return false;\n        //normal when we dont need to flip\n        bool normal = flipEquiv(root1->left, root2->left) && flipEquiv(root1->right, root2->right);\n        //when we flip and we get same nodes\n        bool flipped = flipEquiv(root1->left, root2->right) && flipEquiv(root1->right, root2->left);\n        // if either of them is true we return true\n        return normal || flipped;\n    }
[]