#include<stdio.h>
#include<vector>
using namespace std;

vector<int> graph[100019];
int mvc[100019];

int mvc_tree(int v)
{
	mvc[v] = -1;
	if(graph[v].size() == 1)
		return 0;
	int x = 0;
	for(int i = 0; i < graph[v].size(); ++i)
		if(!mvc[graph[v][i]])
		{
			x += mvc_tree(graph[v][i]);
			if(mvc[v] < 1 && mvc[graph[v][i]] < 1)
				++x,
				mvc[v] = 1;
		}
	return x;
}

int main()
{
	int t, n, a, b, i;
	
	scanf("%d", &t);
	while(t--)
	{
		scanf("%d", &n);
		for(i = 1; i <= n; ++i)
			graph[i].clear();
		for(i = 1; i < n; ++i)
		{
			scanf("%d%d", &a, &b);
			graph[a].push_back(b);
			graph[b].push_back(a);
			mvc[i] = 0;
		}
		mvc[n] = 0;
		if(n < 3)
		{
			puts("1");
			continue;
		}
		for(i = 1; i <= n; ++i)
			if(graph[i].size() > 1)
				break;
		printf("%d\n", mvc_tree(i));
	}
	return 0;
}