繁体   English   中英

如何对二叉树 javascript 的左节点求和

[英]How to sum left nodes from 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 < 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 代表一个空节点。

我对此有点陌生,所以我很感激你的帮助,知道吗?

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;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM