Назад к задачам
СБЕРПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Senior
55
Подсчёт суммарного значения всех узлов бинарного дерева
Компании, где спрашивали:
Условие задачи
Дана структура бинарного дерева, где каждый узел хранит числовое значение и может иметь левый и правый потомки. Необходимо реализовать функцию, которая рекурсивно проходит по всем узлам и возвращает сумму их значений. Пример реализации на TypeScript:
interface ITree {
value: number;
left?: ITree;
right?: ITree;
}
const tree: ITree = {
left: {
left: {
left: {
right: {
left: {
value: 7,
},
right: {
value: 14,
},
value: 66,
},
value: 23,
},
value: 90,
},
right: {
value: 67,
},
value: 34,
},
right: {
value: 11,
},
value: 16,
};
function treeValueSum(tree: ITree) {
let sum = tree.value;
if (tree.left) {
sum += treeValueSum(tree.left);
}
if (tree.right) {
sum += treeValueSum(tree.right);
}
return sum;
}
console.log(treeValueSum(tree));
console.log(treeValueSum(tree) === 328);