#include <bits/stdc++.h>
using namespace std;
typedef long long ll;

struct edge
{
	ll to, cost;
};


vector<edge> g[100000];
ll dist[100000],ans[100000];

void dfs1(ll idx,int par)
{
	for(auto&i:g[idx])
	{
		if(i.to==par)continue;
		dfs1(i.to, idx);
		dist[idx] = max(dist[idx],dist[i.to]+1);
	}
}


void dfs2(ll idx,int d_par,int par)
{
	vector<pair<ll,int>> d_child;
	d_child.emplace_back(0,-1);
	for(auto &i:g[idx])
	{
		if(i.to==par)d_child.emplace_back(d_par+1,i.to);
		else d_child.emplace_back(dist[i.to]+1,i.to);
	}
	sort(d_child.rbegin(),d_child.rend());
	ans[idx] = d_child[0].first;
	for(auto &i:g[idx])
	{
		if(i.to==par)continue;
		dfs2(i.to,d_child[d_child[0].second==i.to].first,idx);
	}
}


int main()
{
	ll n;
	cin >> n;
	for(ll i = 0;i<n-1;i++)
	{
		ll a,b;
		cin >> a >> b;
		a--;b--;
		g[a].push_back((edge){b,1});
		g[b].push_back((edge){a,1});
	}
	dfs1(0,-1);
	dfs2(0,0,-1);
	for(ll i =0;i<n;i++)
	{
		cout<<(n-1)*2-ans[i]<<endl;
	}
	return 0;
}
