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