刚学python,不知道哪里错了。可能是邻接表的问题?
这题没有数据,不会调。
# python a+b
# a,b = map(int,input().split());
# print(a+b)
def add(x, y):
global He, Nx, To
# 在Python中,global关键字用于在函数内部声明一个全局变量,即该变量不属于函数的局部作用域,而是属于全局作用域。使用global关键字可以修改全局作用域中的变量值。
# 不然会以为是局部变量
Nx.append(He[x])
To.append(y)
He[x] = len(Nx) - 1
def dfs(x, fa):
global He, Nx, To, dep
dep[x] = dep[fa] + 1
i = He[x]
while i != 0:
y = To[i]
if y != fa:
dfs(y, x)
i = Nx[i]
t = int(input())
for itert in range(t):
global He, Nx, To, dep
n = int(input())
He = [0] * (n+5); Nx = [0]; To = [0]; dep = [0] * (n+5)
for itern in range(n-1):
a,b = map(int,input().split())
add(a, b); add(b, a)
dfs(1, 0)
d1 = []; d2 = []
for i in range(1, n+1):
if dep[i] % 2 == 0:
d1.append(i)
else:
d2.append(i)
# print(d1, d2)
if abs(len(d1) - len(d2)) > 1:
print(-1)
continue
if n % 2 == 0:
if d1[0] > d2[0]:
d1, d2 = d2, d1
else:
if len(d1) < len(d2):
d1, d2 = d2, d1
for i in range(len(d2)):
print(d1[i], d2[i], end=' ')
if len(d1) > len(d2):
print(d1[-1], end=' ')
print()
"""
在Python中,print 函数默认在输出之后添加一个换行符。如果你不希望print函数在输出后换行,可以使用end参数来指定不换行。end参数的默认值是\n,表示换行。如果你想要在同一行输出多个内容,可以将end参数设置为一个空字符串''。
"""