Максимальная глубина бинарного дерева поиска - PullRequest
0 голосов
/ 31 марта 2020

Я пытаюсь написать рекурсивную функцию для извлечения максимальной глубины двоичного дерева поиска. Я не совсем уверен в разнице между этими двумя реализациями. Разве они оба не должны возвращать один и тот же результат?

Код 1:

def maxDepth(self, root: TreeNode) -> int:
        l = r = 0
        if root:
            print(root.val)
            if root.left:
                print(f"In left subtree for root {root.val}")
                l = self.maxDepth(root.left)
                print(f"l: {l}  r: {r}")
            if root.right:
                print(f"In right subtree for root {root.val}")
                r = self.maxDepth(root.right)
                print(f"l: {l}  r: {r}")
            else:
                print("No subtree")       
        return max(l,r) + 1

Код 2:

def maxDepth(self, root: TreeNode) -> int:
        l = r = 0
        if root:
            print(root.val)
            if root.left:
                print(f"In left subtree for root {root.val}")
                l = self.maxDepth(root.left) + 1
                print(f"l: {l}  r: {r}")
            if root.right:
                print(f"In right subtree for root {root.val}")
                r = self.maxDepth(root.right) + 1
                print(f"l: {l}  r: {r}")
            else:
                print("No subtree")       
        return max(l,r)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...