from collections import deque n = int(input()) G = [[] for _ in range(n)] for _ in range(n-1): a,b = map(int,input().split()) a -= 1 b -= 1 G[a].append(b) G[b].append(a) l = [] for i in range(n): if len(G[i]) >= 3: l.append(i) if len(l) >= 2: print("No") elif len(l) == 0: print("Yes") else: s = set() q = deque() q.append((l[0],-1,0)) while q: cur ,par ,dist = q.popleft() isleaf = True for nx in G[cur]: if nx != par: isleaf = False q.append((nx,cur,dist+1)) if isleaf: s.add(dist) if len(s) == 1: print("Yes") else: print("No")