Как перебрать самый правый лист в функции - PullRequest
0 голосов
/ 16 марта 2020

Итак, у меня есть этот код:

def min_node(self):
        while self.right != None:
            self.data = self.right

        return self.data

И я хочу, чтобы он продолжал выполнять итерацию вправо до тех пор, пока следующее право не станет None, но по какой-то причине self.right просто сохраняет то же значение, поэтому пока петли продолжаются вечно. Кто-нибудь знает, как я могу это исправить?

Спасибо.

1 Ответ

1 голос
/ 16 марта 2020

А как насчет рекурсии?

def min_node(self):
        if self.right is None:
            return self.data
        return self.right.min_node()

Или итеративно?

def min_node(self):
    result = self
    while result.right is not None:
        result = result.right
    return result.data
...