from collections import deque n = int(input()) edges = [[] for _ in range(n)] for _ in range(n - 1): u, v = map(int, input().split()) u -= 1 v -= 1 edges[u].append(v) edges[v].append(u) queue = deque() queue.append(0) R = [-1] * n R[0] = 0 route = [0] while queue: pos = queue.popleft() for npos in edges[pos]: if R[npos] != -1: continue R[npos] = R[pos] + 1 queue.append(npos) route.append(npos) L = [-1] * n for pos in route[::-1]: L[pos] = 0 for npos in edges[pos]: if L[npos] == -1: continue if L[pos] == 0: L[pos] = L[npos] + 1 else: L[pos] = min(L[pos], L[npos] + 1) for l, r in zip(L, R): print(min(l, r))