Функция для поиска самого длинного пути в двоичном дереве

Python Сложный functions

Задача «Функция для поиска самого длинного пути в двоичном дереве»

Дано двоичное дерево, каждый узел которого содержит целое число. Необходимо найти максимальную сумму значений на пути от корня до листа. Путь должен начинаться в корне и заканчиваться в листе. Напишите функцию max_path_sum(root), которая принимает корень дерева и возвращает максимальную сумму. Дерево задаётся в виде списка, где -1 означает отсутствие узла. Ограничения: количество узлов не более 1000, значения узлов от -1000 до 1000.

Формат ввода

В первой строке целое число n — количество узлов. Во второй строке n целых чисел через пробел — значения узлов в порядке обхода в ширину (уровень за уровнем), где -1 означает пустой узел.

Формат вывода

Одно целое число — максимальная сумма на пути от корня до листа.

Примеры

Пример 1

ВВОД
5 -1 2 3 -1 -1
ВЫВОД
2
main.py