#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<bitset>
#include<queue>
#include<stack>
#include<map>
using namespace std;

const long long maxn=300020,maxm=11000,inf=1e18;
const long long mod=1000000007;

typedef long long ll;
int t;         
int tag[300020],a[300020],b[300020];
char sa[300020],sb[300020];


int main()
{
	int t;
	scanf("%d",&t);
	while(t--)
	{
		int n,cnt=0,gt=0;
		scanf("%d",&n);
		scanf("%s",sa+1);
		for(int i=1;i<=n;i++) 
		{
			a[i]=sa[i]-'0';
			cnt+=(sa[i]-'0');
			if(i%2==0&&cnt==i/2) tag[i]=1;
			else tag[i]=0;
		}
		scanf("%s",sb+1);
		for(int i=1;i<=n;i++)
		{
			b[i]=sb[i]-'0';
		}
		int now=0,flag=1;
		for(int i=n;i>=1;i--)
		{
			if(tag[i])
			{
				if((a[i]^now)!=b[i]) now^=1;
			}
			else
			{
				if((a[i]^now)!=b[i])
				{
					flag=0;
					break;
				}
			}
		}
		if(flag) printf("YES\n");
		else printf("NO\n");
	}
	return 0;
}