Я пытаюсь реализовать код python, чтобы найти глубину двоичного дерева. Я успешно реализовал версию C ++, но когда я реализую тот же код в python, он дает другой ответ в Leetcode. Версия C ++:
class Solution {
public:
int maxDepth(TreeNode* root) {
if(!root) return 0;
int l=maxDepth(root->left);
int r=maxDepth(root->right);
return 1 + max(l, r);
}
Python версия:
class Solution(object):
def maxDepth(self, root):
if root is None:
return 0
self.left=self.maxDepth(root.left)
self.right=self.maxDepth(root.right)
return max(self.left,self.right) +1
Есть ли принципиальное различие в том, как выполняются рекурсивные вызовы в Python и C ++. Мой код python не работает в следующем случае: [1,2,3,4,5]