Привет, я натолкнулся на код, чтобы найти максимальную высоту двоичного дерева. В этом коде зачем +1
в операторе возврата?Максимальная высота двоичного дерева
public int maxDepth(TreeNode root) {
if (root == null) {
return 0;
}
return Math.max(maxDepth(root.left), maxDepth(root.right)) + 1;
}
Чтобы скопировать значение глубины, когда рекурсивная логика опускается до тех пор, пока листья дерева не будут установлены. – janos
Узел имеет два под дерева, слева и справа. Высота узла - это высота слева или справа, в зависимости от того, что больше, плюс сам узел, следовательно +1. Это должно быть довольно прямолинейно. Например, есть узел. Его левое дерево имеет высоту 10, правое дерево имеет высоту 7. Тогда высота самого узла составляет 10 плюс еще один уровень для себя, что дает 11 –