import queue n = int(input()) adj = [[] for _ in range(n + 1)] for i in range(n - 1): a, b = map(int, input().split()) adj[a].append(b) adj[b].append(a) lst = [] for i in range(1, n + 1): if len(adj[i]) >= 3: lst.append(i) if len(lst) >= 2: print("No") elif len(lst) == 0: print("Yes") else: lens = set([]) que = queue.Queue() que.put((lst[0], -1, 0)) while not que.empty(): v, p, d = que.get() isleaf = True for w in adj[v]: if w != p: isleaf = False que.put((w, v, d + 1)) if isleaf: lens.add(d) if len(lens) == 1: print("Yes") else: print("No")