C++  Recursion || Approach explained (5 liner Solution)
C++ Code:\nApproach :\n 1) Two null trees are flip equivalent\n 2) A non-null and null tree are NOT flip equivalent\n 3) Two non-null trees with different root 
**C++ Code:**\n**Approach :**\n 1) Two null trees are flip equivalent\n 2) A non-null and null tree are NOT flip equivalent\n 3) Two non-null trees with different root values are NOT flip equivalent\n 4) Two non-null trees are flip equivalent if\n The left subtree of tree1 is flip equivalent with the left subtree of tree2 and the right subtree of tree1 is flipequivalent with the right subtree of tree2 (no flip case)\n     OR\n The right subtree of tree1 is flip equivalent with the left subtree of tree2 and the left subtree of tree1 is flipequivalent with the right subtree of tree2 (flip case)\n\t\t\n```\nbool 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    bool case1 = flipEquiv(root1->left,root2->left) && flipEquiv(root1->right,root2->right);\n    bool case2 = flipEquiv(root1->left,root2->right) && flipEquiv(root1->right,root2->left);\n    return case1 || case2;\n    }\n```
['C', 'Binary Tree']