Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var findLargestLev = function(node) {
- // your code here
- var levelCnt = 0;
- var levelCounter = {};
- var nextLeftNode;
- var nextRightNode;
- var findLevelSum = function (nodeLeft, nodeRight) {
- levelCnt++;
- var levelSum = 0;
- if(nodeLeft !== undefined) {
- levelSum+=nodeLeft.data
- }
- if(nodeRight !== undefined) {
- levelSum+=nodeRight.data
- }
- levelCounter[levelCnt] = levelSum;
- if(nodeLeft.left !== undefined){
- nextLeftNode = nodeLeft.left
- } else {
- nextLeftNode = undefined
- }
- if(nodeLeft.right !== undefined){
- nextLeftNode = nodeLeft.left
- } else {
- nextLeftNode = undefined
- }
- }
- if(levelCnt === 0) {
- findLevelSum(node);
- }
- if(nextLeftNode === undefined && node.right === undefined) {
- return levelCounter
- } else if (node.left !== undefined && node.right !== undefined) {
- findLevelSum(node.left, node.right)
- } else if (node.left !== undefined && node.right === undefined) {
- findLevelSum(node.left, undefined)
- } else if (node.left === undefined && node.right !== undefined) {
- findLevelSum(undefined, node.right)
- }
- var levelTotals = Object.values(levelCounter);
- var levels = Object.keys(levelCounter);
- var largestLevelSum = levelTotals[0]
- var largestLevel = levels[0]
- for (var i = 0; i < levelTotals.length; i ++) {
- if (levelTotals[i] > largestLevelSum) {
- largestLevelSum = levelTotals[i]
- largestLevel = levels[i]
- }
- }
- return Number(largestLevel);
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement