n = int(input()) g = [[] for _ in range(n)] for _ in range(n-1): a,b = map(int,input().split()) g[a-1].append(b-1) g[b-1].append(a-1) leaf = [v for v in range(n) if len(g[v]) == 1] def dfs(g,s): dist = [-1]*n dist[s] = 0 parent = [-1]*n q = [s] for v in q: for c in g[v]: if c == parent[v]: continue parent[c] = v dist[c] = dist[v] + 1 q.append(c) d = -1 for v in leaf: if s == v: continue elif d == -1: d = dist[v] elif d != dist[v]: print("No") exit() #print(dist,d) #print(leaf) c = 0 for s in leaf: dfs(g,s) c += 1 if c > 10: break print("Yes")