Тема: Визначення максимальної глибини бінарного дерева
Знову завдання з LeetCode.
Ось рішення:
class Solution {
int get_max_depth(TreeNode* root) {
if (root != nullptr) {
int left_depth = get_max_depth(root->left);
int right_depth = get_max_depth(root->right);
if (left_depth > right_depth) {
return (left_depth + 1);
}
else {
return (right_depth + 1);
}
}
else {
return 0;
}
}
public:
int maxDepth(TreeNode* root) {
int answer = get_max_depth(root);
return answer;
}
};
Загальний принцип мені зрозумілий,
але я не розумію як накопичується значення змінних left_depth і right_depth.
Звісно, там є рекурсивний виклик функції, але немає додавання абощо.
Як працює підрахунок змінних int у цьому випадку?