import sys from collections import deque input = sys.stdin.buffer.readline n = int(input()) graph = [[] for _ in range(n)] deg1 = [0] * n deg2 = [0] * n for _ in range(n - 1): a, b = map(int, input().split()) a, b = a - 1, b - 1 graph[a].append(b) graph[b].append(a) deg1[a] += 1 deg1[b] += 1 root = -1 kouho = deque() dist = [-1] * n done = [0] * n for i in range(n): if deg1[i] != 1: root = i if deg1[i] == 1: kouho.append(i) dist[i] = 0 done[i] = 1 def ok(): print("Yes") exit() def ng(): print("No") exit() if root == -1: if n == 2: ok() else: ng() # bfs # print("kouho", kouho) while kouho: v = kouho.popleft() d = dist[v] for u in graph[v]: done[u] = 1 if dist[u] == -1: dist[u] = d + 1 kouho.append(u) else: if dist[u] != d + 1 and dist[u] != d - 1: # print("ng", v, u) ng() ok()