#include<bits/stdc++.h>
using namespace std;
#define n nnathw
#define ll long long
#define pb push_back
#define MAX 200200
int n;
vector<int> adj[MAX];
int pos[MAX], head[MAX], treesize[MAX], depth[MAX], parent[MAX];
int cnt = 0;
void nhap()
{
cin >> n;
for(int i = 0; i<n-1; i++){
int a,b; cin >> a >> b;
adj[a].pb(b);
adj[b].pb(a);
}
depth[1] = 0;
parent[1] = 0;
}
void dfs(int v, int par)
{
treesize[v] = 1;
int index = -1;
int ans_index = -1;
for(int u : adj[v]){
++index;
if(u == par) continue;
parent[u] = v;
depth[u] = depth[v] + 1;
dfs(u,v);
treesize[v] += treesize[u];
if(ans_index == -1 || treesize[u] > treesize[adj[v][ans_index]]) ans_index = index;
}
if(ans_index != -1 && ans_index != 0) swap(adj[v][0], adj[v][ans_index]);
}
void decompose(int v, int par, int h)
{
head[v] = h;
pos[v] = ++cnt;
for(int u : adj[v]){
if(u == par) continue;
if(u == adj[v][0]){
decompose(u,v,h);
}else{
decompose(u,v,u);
}
}
}
void process()
{
vector<int> a(n+2,0);
for(int i = 1; i<n; i++){
int u = i;
int v= i+1;
while(head[u] != head[v]){
if(depth[head[u]] < depth[head[v]]) swap(u,v);
a[pos[head[u]]]++;
a[pos[u] + 1]--;
u = parent[head[u]];
}
if(depth[u] > depth[v]) swap(u,v);
a[pos[u]]++;
a[pos[v] + 1]--;
}
for(int i = 1; i<=n; i++) a[i] = a[i-1] + a[i];
for(int i = 1; i<=n; i++) cout << a[pos[i]] << ' ';
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0);
nhap();
dfs(1,-1);
decompose(1,-1,1);
process();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbiBubmF0aHcKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBNQVggMjAwMjAwCgppbnQgbjsKdmVjdG9yPGludD4gYWRqW01BWF07CmludCBwb3NbTUFYXSwgaGVhZFtNQVhdLCB0cmVlc2l6ZVtNQVhdLCBkZXB0aFtNQVhdLCBwYXJlbnRbTUFYXTsKaW50IGNudCA9IDA7Cgp2b2lkIG5oYXAoKQp7CiAgICBjaW4gPj4gbjsKICAgIGZvcihpbnQgaSA9IDA7IGk8bi0xOyBpKyspewogICAgICAgIGludCBhLGI7IGNpbiA+PiBhID4+IGI7CiAgICAgICAgYWRqW2FdLnBiKGIpOwogICAgICAgIGFkaltiXS5wYihhKTsKICAgIH0KICAgIGRlcHRoWzFdID0gMDsKICAgIHBhcmVudFsxXSA9IDA7Cn0KCnZvaWQgZGZzKGludCB2LCBpbnQgcGFyKQp7CiAgICB0cmVlc2l6ZVt2XSA9IDE7CiAgICBpbnQgaW5kZXggPSAtMTsKICAgIGludCBhbnNfaW5kZXggPSAtMTsKICAgIGZvcihpbnQgdSA6IGFkalt2XSl7CiAgICAgICAgKytpbmRleDsKICAgICAgICBpZih1ID09IHBhcikgY29udGludWU7CiAgICAgICAgcGFyZW50W3VdID0gdjsKICAgICAgICBkZXB0aFt1XSA9IGRlcHRoW3ZdICsgMTsKICAgICAgICBkZnModSx2KTsKICAgICAgICB0cmVlc2l6ZVt2XSArPSB0cmVlc2l6ZVt1XTsKICAgICAgICBpZihhbnNfaW5kZXggPT0gLTEgfHwgdHJlZXNpemVbdV0gPiB0cmVlc2l6ZVthZGpbdl1bYW5zX2luZGV4XV0pIGFuc19pbmRleCA9IGluZGV4OwogICAgfQogICAgaWYoYW5zX2luZGV4ICE9IC0xICYmIGFuc19pbmRleCAhPSAwKSBzd2FwKGFkalt2XVswXSwgYWRqW3ZdW2Fuc19pbmRleF0pOwp9Cgp2b2lkIGRlY29tcG9zZShpbnQgdiwgaW50IHBhciwgaW50IGgpCnsKICAgIGhlYWRbdl0gPSBoOwogICAgcG9zW3ZdID0gKytjbnQ7CiAgICBmb3IoaW50IHUgOiBhZGpbdl0pewogICAgICAgIGlmKHUgPT0gcGFyKSBjb250aW51ZTsKICAgICAgICBpZih1ID09IGFkalt2XVswXSl7CiAgICAgICAgICAgIGRlY29tcG9zZSh1LHYsaCk7CiAgICAgICAgfWVsc2V7CiAgICAgICAgICAgIGRlY29tcG9zZSh1LHYsdSk7CiAgICAgICAgfQogICAgfQp9Cgp2b2lkIHByb2Nlc3MoKQp7CiAgICB2ZWN0b3I8aW50PiBhKG4rMiwwKTsKICAgIGZvcihpbnQgaSA9IDE7IGk8bjsgaSsrKXsKICAgICAgICBpbnQgdSA9IGk7CiAgICAgICAgaW50IHY9IGkrMTsKICAgICAgICB3aGlsZShoZWFkW3VdICE9IGhlYWRbdl0pewogICAgICAgICAgICBpZihkZXB0aFtoZWFkW3VdXSA8IGRlcHRoW2hlYWRbdl1dKSBzd2FwKHUsdik7CiAgICAgICAgICAgIGFbcG9zW2hlYWRbdV1dXSsrOwogICAgICAgICAgICBhW3Bvc1t1XSArIDFdLS07CiAgICAgICAgICAgIHUgPSBwYXJlbnRbaGVhZFt1XV07CiAgICAgICAgfQogICAgICAgIGlmKGRlcHRoW3VdID4gZGVwdGhbdl0pIHN3YXAodSx2KTsKICAgICAgICBhW3Bvc1t1XV0rKzsKICAgICAgICBhW3Bvc1t2XSArIDFdLS07CiAgICB9CiAgICBmb3IoaW50IGkgPSAxOyBpPD1uOyBpKyspIGFbaV0gPSBhW2ktMV0gKyBhW2ldOwogICAgZm9yKGludCBpID0gMTsgaTw9bjsgaSsrKSBjb3V0IDw8IGFbcG9zW2ldXSA8PCAnICc7Cn0KCmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKICAgIG5oYXAoKTsKICAgIGRmcygxLC0xKTsKICAgIGRlY29tcG9zZSgxLC0xLDEpOwogICAgcHJvY2VzcygpOwogICAgcmV0dXJuIDA7Cn0K