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()