#include <bits/stdc++.h>
using ll = long long;
using ull = unsigned long long;
using ld = long double;
#define all(v) (v).begin(), (v).end()
#define ii pair <int, int>
#define FORC(i, r, a) for(int i = 1; i <= r; cin >> (a)[i++])
#define FOR(i,l,r) for(int i = l; i <= r; ++i)
#define FOD(i,l,r) for(int i = l; i >= r; --i)
#define vi vector <int>
#define mvt vector<vi>
#define sz(v) (int)(v).size()
#define iota(a, l, r) for(int i = l; i <= r; ++i) a[i] = i;
#define taskname "TD"
const long long maxN = 2e5 + 10, oo = 1e9, MOD = 1e9 + 7;
using namespace std;
int dist[maxN], n, res[maxN];
vector <int> adj[maxN];
void dfs(int u, int p)
{
for(auto v : adj[u]) if(v != p)
{
dfs(v, u);
dist[u] = max(dist[u], dist[v] + 1);
}
res[u] = max(res[u], dist[u]);
}
void dfs2(int u, int p, int len_max)
{
res[u] = max(res[u], len_max);
vector <int> pre(adj[u].size() + 2, 0), suf(adj[u].size() + 2, 0);
int id = 0;
for(auto v : adj[u]) if(v != p)
{
++id;
pre[id] = max(pre[id - 1], dist[v] + 1);
}
for(auto it = adj[u].rbegin(); it != adj[u].rend(); ++it) if(*it != p)
{
suf[id] = max(suf[id + 1], dist[*it] + 1);
--id;
}
for(auto v : adj[u]) if(v != p)
{
++id;
dfs2(v, u, max({pre[id - 1], suf[id + 1], len_max}) + 1);
}
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
freopen(taskname".INP", "r", stdin);
freopen(taskname".OUT", "w", stdout);
cin >> n;
FOR(i,1,n - 1)
{
int u, v;
cin >> u >> v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dfs(1,0);
dfs2(1,0,0);
FOR(i,1,n)
{
cout << res[i] << ' ';
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyB1bGwgPSB1bnNpZ25lZCBsb25nIGxvbmc7CnVzaW5nIGxkID0gbG9uZyBkb3VibGU7CiNkZWZpbmUgYWxsKHYpICh2KS5iZWdpbigpLCAodikuZW5kKCkKI2RlZmluZSBpaSBwYWlyIDxpbnQsIGludD4KI2RlZmluZSBGT1JDKGksIHIsIGEpIGZvcihpbnQgaSA9IDE7IGkgPD0gcjsgY2luID4+IChhKVtpKytdKQojZGVmaW5lIEZPUihpLGwscikgZm9yKGludCBpID0gbDsgaSA8PSByOyArK2kpCiNkZWZpbmUgRk9EKGksbCxyKSBmb3IoaW50IGkgPSBsOyBpID49IHI7IC0taSkKI2RlZmluZSB2aSB2ZWN0b3IgPGludD4KI2RlZmluZSBtdnQgdmVjdG9yPHZpPgojZGVmaW5lIHN6KHYpIChpbnQpKHYpLnNpemUoKQojZGVmaW5lIGlvdGEoYSwgbCwgcikgZm9yKGludCBpID0gbDsgaSA8PSByOyArK2kpIGFbaV0gPSBpOwojZGVmaW5lIHRhc2tuYW1lICJURCIKY29uc3QgbG9uZyBsb25nIG1heE4gPSAyZTUgKyAxMCwgb28gPSAxZTksIE1PRCA9IDFlOSArIDc7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgZGlzdFttYXhOXSwgbiwgcmVzW21heE5dOwp2ZWN0b3IgPGludD4gYWRqW21heE5dOwoKdm9pZCBkZnMoaW50IHUsIGludCBwKQp7CiAgICBmb3IoYXV0byB2IDogYWRqW3VdKSBpZih2ICE9IHApCiAgICB7CiAgICAgICAgZGZzKHYsIHUpOwogICAgICAgIGRpc3RbdV0gPSBtYXgoZGlzdFt1XSwgZGlzdFt2XSArIDEpOwogICAgfQogICAgcmVzW3VdID0gbWF4KHJlc1t1XSwgZGlzdFt1XSk7Cn0KCnZvaWQgZGZzMihpbnQgdSwgaW50IHAsIGludCBsZW5fbWF4KQp7CiAgICByZXNbdV0gPSBtYXgocmVzW3VdLCBsZW5fbWF4KTsKICAgIHZlY3RvciA8aW50PiBwcmUoYWRqW3VdLnNpemUoKSArIDIsIDApLCBzdWYoYWRqW3VdLnNpemUoKSArIDIsIDApOwoKICAgIGludCBpZCA9IDA7CiAgICBmb3IoYXV0byB2IDogYWRqW3VdKSBpZih2ICE9IHApCiAgICB7CiAgICAgICAgKytpZDsKICAgICAgICBwcmVbaWRdID0gbWF4KHByZVtpZCAtIDFdLCBkaXN0W3ZdICsgMSk7CgogICAgfQoKICAgIGZvcihhdXRvIGl0ID0gYWRqW3VdLnJiZWdpbigpOyBpdCAhPSBhZGpbdV0ucmVuZCgpOyArK2l0KSBpZigqaXQgIT0gcCkKICAgIHsKICAgICAgICBzdWZbaWRdID0gbWF4KHN1ZltpZCArIDFdLCBkaXN0WyppdF0gKyAxKTsKICAgICAgICAtLWlkOwogICAgfQoKICAgIGZvcihhdXRvIHYgOiBhZGpbdV0pIGlmKHYgIT0gcCkKICAgIHsKICAgICAgICArK2lkOwogICAgICAgIGRmczIodiwgdSwgbWF4KHtwcmVbaWQgLSAxXSwgc3VmW2lkICsgMV0sIGxlbl9tYXh9KSArIDEpOwogICAgfQp9CgppbnQgbWFpbigpIHsKCWlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgljaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCWZyZW9wZW4odGFza25hbWUiLklOUCIsICJyIiwgc3RkaW4pOwoJZnJlb3Blbih0YXNrbmFtZSIuT1VUIiwgInciLCBzdGRvdXQpOwoKICAgIGNpbiA+PiBuOwogICAgRk9SKGksMSxuIC0gMSkKICAgIHsKICAgICAgICBpbnQgdSwgdjsKICAgICAgICBjaW4gPj4gdSA+PiB2OwogICAgICAgIGFkalt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgYWRqW3ZdLnB1c2hfYmFjayh1KTsKICAgIH0KCiAgICBkZnMoMSwwKTsKICAgIGRmczIoMSwwLDApOwoKICAgIEZPUihpLDEsbikKICAgIHsKICAgICAgICBjb3V0IDw8IHJlc1tpXSA8PCAnICc7CiAgICB9Cn0=