import sys from collections import deque def main(): sys.setrecursionlimit(1 << 25) T = int(sys.stdin.readline()) for _ in range(T): n = int(sys.stdin.readline()) graph = [[] for _ in range(n + 1)] degree = [0] * (n + 1) for _ in range(n - 1): u, v = map(int, sys.stdin.readline().split()) graph[u].append(v) graph[v].append(u) degree[u] += 1 degree[v] += 1 # 找出所有叶子节点(Sekai 点) sekai = [i for i in range(1, n + 1) if degree[i] == 1] # 多源 BFS,记录每个节点到最近 Sekai 点的距离 dist = [-1] * (n + 1) q = deque() for s in sekai: dist[s] = 0 q.append(s) while q: u = q.popleft() for v in graph[u]: if dist[v] == -1: dist[v] = dist[u] + 1 q.append(v) # 在非叶子节点中,找出距离值最大的点 max_dist = -1 miku = [] for i in range(1, n + 1): if degree[i] > 1: if dist[i] > max_dist: max_dist = dist[i] miku = [i] elif dist[i] == max_dist: miku.append(i) # 输出结果 print(len(miku)) print(' '.join(map(str, sorted(miku)))) main()