Tengo un árbol binario y quiero sumar todos los nodos más a la izquierda. Asi que
2 / \ 7 5 / \ / \ 2 6 9Tomando ese árbol, quiero que el resultado sea 11, porque quiero sumar 2+7+2.
Así que traté de hacerlo así:
function leftmostNodesSum(array) { let sum = 0; let currentNode = array[0]; let previousNode; for (let i = 0; i < array.length; i++) { if (i === currentNode * 2 + 1) { previousNode = currentNode; currentNode = array[i]; sum += previousNode; } } return sum; } Debo decir que tengo mi matriz con un formato de "anchura primero", por lo que mi primer nodo tiene el índice 0 en mi matriz, y los nodos de la izquierda son 2n + 1. La matriz se ve así: [2, 7, 5, 2, 6, 0, 9] El número 0 representa un nodo vacío.
Soy un poco nuevo en esto, así que agradecería su ayuda, ¿alguna idea?
function leftmostNodesSum(array) { let sum = 0; let currentNode = 0; for (let i = 0; i < array.length; i++) { if (i === currentNode) { sum += array[i]; currentNode = 2 * i + 1; } } return sum; }