#include<bits/stdc++.h>
#define N 200005
#define pb push_back
#define fi first
#define se second
#define pii pair<int,int>
using namespace std;
int id,T,n,K; vector<int>g[N];
pair<int,int> dfs(int x,int fa){
if(id!=-1) return make_pair(-n,-1);
vector<pii >st;
for(int &u:g[x]) if(u!=fa) st.pb(dfs(u,x));
if(id!=-1) return make_pair(-n,-1);
if(!st.size()) return make_pair(1,x);
sort(st.begin(),st.end());
if(st.size()>=2&&st[0].fi<K&&st[1].fi<K){
id=st[0].se; return make_pair(-n,-1);
}return make_pair(st[0].fi+1,st[0].se);
}bool chk(int rd){
K=rd,id=-1; pii o=dfs(1,0);
if(o.fi>=K) return 1;
if(id==-1) id=o.se;
int u=id; id=-1,o=dfs(u,0);
return (o.fi>=K);
}signed main(){
scanf("%d",&T);
while(T--){
scanf("%d",&n); for(int i=1;i<=n;i++) g[i].clear();
for(int i=1,u,v;i<n;i++) scanf("%d%d",&u,&v),g[u].pb(v),g[v].pb(u);
int l=1,r=n,ret=1;
while(l<=r){
int md=(l+r)>>1;
if(chk(md)) l=md+1,ret=md;
else r=md-1;
}printf("%d\n",ret);
}return 0;
}