Я борюсь со следующим вопросом: «Учитывая двоичное дерево, в котором каждый элемент узла содержит число. Найдите максимально возможную сумму из одного листового узла к другому. Путь максимальной суммы может или не может проходить через корень ». Я хочу написать решение O (n), обсуждаемое здесь: http://www.geeksforgeeks.org/find-maximum-path-sum-two-leaves-binary-tree/, но у меня проблема, так как java передается по значению. Может кто-нибудь помочь?Найти максимальную сумму пути между двумя листами двоичного дерева (Java)
EDIT: это мой метод
private static int fromRoot(TreeNode root, int[] res){
if(root == null)
return 0;
int left = fromRoot(root.left, res) + root.val;
int right = fromRoot(root.right, res) + root.val;
int max = Math.max(Math.max(left, right), left+right+root.val);
if(max > res[0])
res[0] = max;
return Math.max(left, right);
}
INT переменной res
я сохранить вывод. То, что делает этот код, - это сумма всех узлов из дерева.
Waitaminute. Почему именно Java проходит по значению проблему? – Makoto
@ user2040251 Я обновил описание – sammy333