flipEquiv = function(root1, root2) {
    
    const dfs = (node1, node2) => {
        if (!node1 && !node2) return true;
        if (!node1) return false;
        if (!node2) return false;
        
        if (node1.val !== node2.val) return false;

        if ((node1.left && node1.left.val) !== (node2.left && node2.left.val)) {
            return dfs(node1.right, node2.left) && dfs(node1.left, node2.right);
        }

        return dfs(node1.left, node2.left) && dfs(node1.right, node2.right);
    }

    return dfs(root1, root2);
}
@param {TreeNode} root1
@param {TreeNode} root2
@return {boolean}