jykim16
7/20/2017 - 4:57 PM

largest-level-of-tree

largest-level-of-tree

const findLargestLevel = function(node) {
  let currLevel = [node]
  let i = 0; 
  let index = [[0, node.value]];
  while(currLevel.length > 0) {
    nextLevel = [];
    i++;
    //function that moves currlevl children to nextlevel children
    for(let parent = 0; parent < currLevel.length; parent++) {
      //nextLevel.push(children) 
      for(let child = 0; child < currLevel[parent].children.length; child++) {
        nextLevel.push(currLevel[parent].children[child])
      }
    }
    //function that takes nextLevel and puts to index
    index[i] =[i, 0];
    for(var children = 0; children < nextLevel.length; children++) {
      index[i][1] += nextLevel[children].value;
    }
    //nextLevel = currLevel
    currLevel = nextLevel; 
    return index.reduce(function(accum, num) {
      return num[1] > accum[1] ? num : accum;
    })[0];
  }
};

//test
var testNode = {value: -3, children:[{value: 5, children: [{value: -2, children: []},{value: 3, children: []}, {value: 1, children:[]}]},{value: 2, children: [{value: 4, children: []}]}]}
findLargestLevel(testNode);