JSFiddle - React, Tailwind, and code Playground

by Diana Lemen

JavaScript

let item = {
    value: 12,
    right: {
    	value: 13,
      right: {
      	value: 16, 
        right: { value: 13, right: null, left: null },
        left: null
      },
     	left: null
    },
    left: {
    	value: 14,
      right: { value: 15, right: null, left: null },
      left: { value: 17, right: null, left: null }
    },
}

function goThrough(el, acc, i) {
		if(!el) return;
    
    acc[i] = acc[i] ? acc[i] + el.value : el.value;
    goThrough(el.right, acc, i++);
    goThrough(el.left, acc, i++);
    
    return;
}


const getSum = () => {
	const acc = {};
  goThrough(item, acc, 0);

	return acc;
}

console.log(getSum());