Рекурсивная функция дает мне вывод None. Почему? - PullRequest
0 голосов
/ 09 апреля 2020

Я создаю программу для обхода подсписка списка, поэтому я создал рекурсивную функцию, которая не знает, почему дает мне значение None.
Сначала я расскажу вам все, что это за функция
давайте возьмем список:

M =[[1,2],[2,3],[3,4],[4,5]]

и у меня есть два значения, которые я передаю x и y, давайте возьмем

x=1 ,y=4

Теперь я хочу go через все это до 4, поэтому я использовал рекурсивную функцию, которая не работает
Вот полная программа

# cook your dish here
def traverse(x,y,M):
    for i in M:
        if x in i:
            if x==i[0]:
                res=x*i[1]
                if i[1]==y:
                    return res
                else:
                    M.remove(i)
                    return traverse(i[0],y,M)
            else:
                res=x*i[0]
                if i[0]==y:
                    return res
                else:
                    M.remove(i)
                    return traverse(i[1],y,M)
t=int(input())
for i in range(t):
    n=int(input())
    N=[]
    for j in range(n-1):
        r=list(map(int,input().split()))
        N.append(r)
    A=list(map(int,input().split()))
    q=int(input())
    Q=[]
    for j in range(q):
        c=list(map(int,input().split()))
        Q.append(c)

    for j in Q:
        if j in N:
            res=A[j[0]-1]*A[j[1]-1]
            print(res)
        elif j[0]==j[1]:
            for k in N:
                if j[0] in k:
                    res=A[k[0]-1]*A[k[1]-1]
                    print(res)
                    break
        else:
            M=list(N)
            x=j[0]
            y=j[1]
            print(traverse(x,y,M))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...