#javascript #arrays #binary-tree
#язык JavaScript #массивы #двоичное дерево
Вопрос:
У меня есть двоичное дерево, и я хочу суммировать все самые левые узлы. Так
2 / 7 5 / / 2 6 9
Взяв это дерево, я хочу, чтобы результат был 11, потому что я хочу подвести итог 2 7 2.
Поэтому я попытался сделать это так:
function leftmostNodesSum(array) { let sum = 0; let currentNode = array[0]; let previousNode; for (let i = 0; i lt; array.length; i ) { if (i === currentNode * 2 1) { previousNode = currentNode; currentNode = array[i]; sum = previousNode; } } return sum; }
Я должен сказать, что у меня есть массив в формате «сначала по ширине», поэтому мой первый узел имеет индекс 0 в моем массиве, а левые узлы равны 2n 1. Массив выглядит так: [2, 7, 5, 2, 6, 0, 9]
Число 0 представляет собой пустой узел.
Я вроде как новичок в этом, так что был бы признателен вам за помощь, есть идеи?
Ответ №1:
function leftmostNodesSum(array) { let sum = 0; let currentNode = 0; for (let i = 0; i lt; array.length; i ) { if (i === currentNode) { sum = array[i]; currentNode = 2 * i 1; } } return sum; }