Дано бинарное дерево, в вершинах которого хранятся целые числа. Определите максимальную сумму значений, которую можно получить, спускаясь от корня дерева до листа.
Корень — вершина, у которой нет родительской вершины.
Лист — вершина дерева, у которой нет ни одного ребенка.
1 1 0
/ \ / \ / \
5 2 5 2 -5 -2
/ \ / \ / / / \
1 3 8 9 7 30 -7 6
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
7 9 11 12 13 33 -12 1 -2
maxPath = 12 maxPath = 33 maxPath = 1
Объект, соответствующий первому дереву из примера выше:
const root = { value: 1, // ← left: { value: 5, left: { value: 1, left: null, right: null, }, right: { value: 3, left: null, right: null, }, }, right: { value: 2, // ← left: { value: 8, left: null, right: null, }, right: { value: 9, // ← left: null, right: null, }, }, }; console.log(maxSum(root)); // 1 + 2 + 9 === 12