Python straightforward DFS
Logic is simple\n DFS both roots simultaneously\n If one of them is None, both should be None.\n If root1\'s left node value is not equal to root2\'s left node 
* Logic is simple\n* DFS both roots simultaneously\n* If one of them is None, both should be None.\n* If root1\'s left node value is not equal to root2\'s left node value, flip root1\'s children\n* If root1\'s left node is None and root2\'s left node is not, flip root1\'s children\n* If root2\'s left node is None and root1\'s left node is not, flip root1\'s children\n```\nclass Solution:\n    def flipEquiv(self, root1, root2):\n        if not root1 or not root2: \n            return root1 == root2\n        if root1.left and root2.left and root1.left.val != root2.left.val or (not root1.left and root2.left) or (root1.left and not root2.left):\n            root1.left, root1.right = root1.right, root1.left\n        return root1.val == root2.val and self.flipEquiv(root1.left, root2.left) and self.flipEquiv(root1.right, root2.right)\n```
[]