Junior — Senior
Calculating the total value of all nodes in a binary tree
livecode
Task condition
Given a binary tree structure where each node stores a numerical value and can have left and right children, implement a function that recursively traverses all nodes and returns the sum of their values. Example implementation in 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);