#include <bits/stdc++.h>
using namespace std;
#define mod 1000000007
#define ll long long
#define pb push_back
#define lop(i,n) for(int i=0;i<n;i++)
#define lop1(i,n) for(int i=1;i<=n;i++)
#define fast ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr);
#define mem(b,a) memset(a,b,sizeof(a))
#define yes cout<<"YES"<<endl
#define no cout<<"NO"<<endl
//setbit clearbit toggle k-1, k-1
#define setbit(x,k)   (x |=(1<<k))
#define clearbit(x,k) (x &= ~(1<<k))
#define togglebit(x,k)  (x ^=  (1<<k))
#define checkbit(x,k) (x& (1<<k))
// v.erase(unique(v.begin(),v.end()),v.end());
#define inf INT_MAX
#define nn cout<<endl
#define mn 1000000
int main()
{
    fast
    ll t;
    cin>>t;

    while(t--)
    {
        ll n;
        cin>>n;
        string a,b;
        cin>>a>>b;

        vector<ll>pos;
        //pos.pb(0);
        ll cnt1=0;
        ll cnt0=0;
        for(int i=0; i<a.size(); i++)
        {
            if(a[i]=='1')
            {
                cnt1++;
            }
            else
            {
                cnt0++;
            }
            if(cnt1==cnt0)
            {
                pos.pb(i);

            }
        }
        //cout<<pos.size()<<endl;


        if(pos.size()==0)
        {
            bool ink=0;
            for(int i=0; i<n; i++)
            {
                if(a[i]!=b[i])
                {

                    ink=1;
                    break;
                }
            }
            if(ink==0)
            {
                yes;
                continue;
            }
            else
            {
                no;
                continue;
            }
        }

       /* if(pos.size()==1)
        {
            bool o=0;
            bool k=0;
            for(int i=0; i<=pos[0]; i++)
            {
                if(a[i]!=b[i])
                {
                    o=1;

                }
                else
                {
                    k=1;

                }

            }
            // cout<<o<<k<<endl;
            if((o==1)&&(k==1))
            {
                no;
                continue;

            }
            else
            {
                yes;
                continue;
            }
        }
        */

        /* bool ok=0;
         bool ok2=0;

        for(int i=0;i<=pos[0];i++)
         {

                 if(a[i]!=b[i])
                 {
                     ok=1;

                 }
                  else
                 {
                     ok2=1;
                      //cout<<a[i]<<"j "<<b[i]<<endl;
                    // break;
                 }

         }
         if((ok==1)||(ok2==1))
         {
             no;
            continue;
         }
         */
        bool ans=0;
        for(int i=0; i<pos.size()-1; i++)
        {

            bool p=0;
            bool q=0;
            for(int j=pos[i]+1; j<=pos[i+1]; j++)
            {

                if(a[j]!=b[j])
                {
                    p=1;

                }
                else
                {
                    q=1;

                }
            }
            if((p==1)&&(q==1))
            {
                ans=1;
                break;
            }
        }
        //cout<<ans<<endl;


        bool ok1=0;
        bool ok2=0;
        for(int i=0; i<=pos[0]; i++)
        {
            if(a[i]!=b[i])
            {
                ok1=1;

            }
            else
            {
                ok2=1;

            }

        }
        if((ok1==1)&&(ok2==1))
        {
            ans=1;

        }
       // cout<<pos[pos.size()-1]<<endl;
        if(pos[pos.size()-1]!=(n-1))
        {
            bool ok4=0;

            for(int i=pos[pos.size()-1]+1; i<n; i++)
            {
                if(a[i]!=b[i])
                {
                    ok4=1;
                    break;

                }


            }
            if(ok4==1)
            {
                ans=1;

            }
        }



        /*bool ink=0;
         if(pos[pos.size()-1]!=(n-1))
         {
             for(int i=pos[pos.size()-1];i<n;i++)
             {
                 if(a[i]!=b[i])
                 {
                     ink=1;
                     break;
                 }
             }
         }

         if(ink==1)
         {
             no;
             continue;
         }
         */
        // cout<<ans<<endl;
        if(ans==0)
        {
            yes;
        }
        else
        {
            no;
        }


    }

}
