N = int(input()) G = [[] for _ in range(N+1)] for _ in range(N-1): x,y = map(int,input().split()) G[x].append(y) G[y].append(x) depth = [0] * (N +1) dp = [0] * (N +1) stack = [(~1,0),(1,0)] while stack: now,parent = stack.pop() if now >= 0: for v in G[now]: if v == parent:continue depth[v] = depth[now] + 1 stack.append((~v,now)) stack.append((v,now)) else: now = ~now _min = 10 ** 6 for v in G[now]: if v == parent:continue if dp[v] + 1 < _min: _min = dp[v] + 1 if _min < 10 ** 6: dp[now] = _min for i in range(1,N+1): print(min(depth[i],dp[i]))