#pragma region
#ifndef M207
#pragma GCC optimize("O2,Ofast,inline,unroll-all-loops,-ffast-math")
#pragma GCC target("avx,sse2,sse3,sse4,popcnt")
#endif
#include <bits/stdc++.h>
using namespace std;
#define ri register int
#define il inline
#define LL long long
#define uint unsigned int
#define ull unsigned long long
#define solid const auto &
#define pb emplace_back
#define mp make_pair
#define pii pair<int,int>
#define pll pair<LL,LL>
#define fi first
#define se second
#define gm int mid((l+r)/2)
#define space putchar(' ')
#define enter putchar('\n')
#define rd() ({ri t;in(t);t;})
#define Size(x) ((int)x.size())
#define mem(x,y) memset(x,y,sizeof(x))
template<class T>il void in(T &x)
{
	x=0; char c=getchar(); bool f=0;
	while(!isdigit(c)) f|=(c=='-'),c=getchar();
	while(isdigit(c)) x=x*10+(c^'0'),c=getchar();
	f?x=-x:0;
}
template<class T>il void out(T x,const char c='\n')
{
	static short st[30]; short m=0;
	if(x<0) putchar('-'),x=-x;
	do st[++m]=x%10,x/=10; while(x);
	while(m) putchar(st[m--]|'0');
	putchar(c);
}
template<class T>il void err(const T &x,const char c='\n') {cerr<<x<<c;}
template<class T,class ...Args>il void in(T &x,Args &...args) {in(x); in(args...);}
template<class T,class ...Args>il void out(const T &x,const Args &...args) {out(x,' '); out(args...);}
template<class T,class ...Args>il void err(const T &x,const Args &...args) {err(x,' '); err(args...);}
template<class T>il void prt(T a[],int n) {for(ri i=0; i<n; ++i) out(a[i],i==n-1?'\n':' ');}
template<class T>il void clr(T a[],int n) {memset(a,0,sizeof(T)*n);}
template<class T>il void clr(T *a,T *b) {memset(a,0,sizeof(T)*(b-a));}
template<class T>il bool ckmax(T &a,const T &b) {return a<b?a=b,1:0;}
template<class T>il bool ckmin(T &a,const T &b) {return a>b?a=b,1:0;}
// namespace MOD_CALC
// {
// const int md=1e9+7,inv2=(md+1)/2;
// il int add(const int a,const int b) {return a+b>=md?a+b-md:a+b;}
// il int sub(const int a,const int b) {return a-b<0?a-b+md:a-b;}
// il int mul(const int a,const int b) {return (LL)a*b%md;}
// il void inc(int &a,const int b) {(a+=b)>=md?a-=md:0;}
// il void dec(int &a,const int b) {(a-=b)<0?a+=md:0;}
// il int qpow(int a,int b) {int r=1; for(; b; b>>=1,a=mul(a,a)) if(b&1) r=mul(r,a); return r;}
// il int qpow(int a,int b,const int p) {int r=1; for(; b; b>>=1,a=(LL)a*a%p) if(b&1) r=(LL)r*a%p; return r;}
// il int mdinv(const int a) {return qpow(a,md-2);}
// template<class ...Args>il int add(const int a,const int b,const Args &...args) {return add(add(a,b),args...);}
// template<class ...Args>il int mul(const int a,const int b,const Args &...args) {return mul(mul(a,b),args...);}
// } using namespace MOD_CALC;
namespace i207M
{
#pragma endregion
#define N 200005
#define M N*4
#define ls (x<<1)
#define rs (x<<1|1)
const int rt=1;
int n;
int tre[N];
il void upd(int x,int k) {for(; x<=n; x+=x&-x) tre[x]+=k;}
il int ask(int x) {int r=0; for(; x; x-=x&-x) r+=tre[x]; return r;}
il void Upd(int l,int r,int k) {upd(l,k); upd(r+1,-k);}
vector<int> E[N];
int dfn[N],dk,sz[N],hsn[N],fa[N],top[N],dep[N];
int st[N],tp,pos[N];
int mx[N];
int big[N],ans[N];
map<int,int> qu[N];
void dfs(int x,int _fa)
{
	st[pos[x]=++tp]=x;
	sz[x]=1,dep[x]=dep[fa[x]=_fa]+1;
	mx[x]=max(mx[fa[x]],x);
	if(x!=1)
	{
		int p=mx[fa[x]];
		if(x<p)
		{
			int q=st[pos[p]+1];
			qu[p][q]=qu[mx[fa[p]]][p]=0;
			if(mx[fa[p]]>q) qu[mx[fa[p]]][q]=0;
		}
		else qu[p][x]=0;
	}
	for(solid v:E[x])
	{
		if(v==_fa) continue;
		dfs(v,x); sz[x]+=sz[v];
		if(sz[v]>sz[hsn[x]]) hsn[x]=v;
	}
	--tp;
}
void efs(int x,int _tp)
{
	dfn[x]=++dk,top[x]=_tp;
	if(hsn[x]) efs(hsn[x],_tp);
	else return;
	for(solid v:E[x])
	{
		if(v==fa[x]||v==hsn[x]) continue;
		efs(v,v);
	}
}
il void lineupd(int x,int v)
{
	while(x)
	{
		Upd(dfn[top[x]],dfn[x],v);
		x=fa[top[x]];
	}
}
int uf[N];
il int ufind(int x) {return x==uf[x]?x:uf[x]=ufind(uf[x]);}
il void link(int x)
{
	uf[x]=uf[fa[x]];
	int t=ask(dfn[x]);
	lineupd(fa[x],t);
	lineupd(fa[ufind(x)],-t);
}
void solve()
{
	upd(1,1);
	for(ri i=1; i<=n; ++i) uf[i]=i;
	for(ri i=1; i<=n; ++i)
	{
		for(solid v:E[i])
			if(v<=i)
			{
				if(v==fa[i]) link(i);
				else link(v);
			}
		for(auto &it:qu[i])
		{
			if(it.fi<=i) it.se=ask(dfn[it.fi]);
			else
			{
				it.se=1;
				for(solid v:E[it.fi])
					if(v<=i&&v!=fa[it.fi]) it.se+=ask(dfn[v]);
			}
			// err("S",i,it.fi,it.se);
		}
	}
}
void gfs(int x,int _fa)
{
	st[pos[x]=++tp]=x;
	if(x!=1)
	{
		int p=mx[fa[x]];
		if(x<p)
		{
			int q=st[pos[p]+1];
			ans[x]=ans[fa[p]]+qu[p][q]+qu[mx[fa[p]]][p]-(mx[fa[p]]>q?qu[mx[fa[p]]][q]:0);
		}
		else ans[x]=ans[fa[x]]+qu[p][x];
	}
	for(solid v:E[x])
	{
		if(v==_fa) continue;
		gfs(v,x);
	}
	--tp;
}
signed main()
{
#ifdef M207
	freopen("in.in","r",stdin);
	// freopen("ot.out","w",stdout);
#endif
	in(n);
	for(ri i=1,a,b; i<n; ++i)
	{
		in(a,b);
		E[a].pb(b),E[b].pb(a);
	}
	dfs(1,0);
	efs(1,1);
	solve();
	gfs(1,0);
	prt(ans+2,n-1);
	return 0;
}
#pragma region
}
signed main()
{
	i207M::main();
	return 0;
}
#pragma endregion


Measured memory_bytes: 78976