JSFiddle - React, Tailwind, and code Playground

by Diana Lemen

JavaScript

const root = {
	val: 8,
  left: {
  	left: {
      val: 3,
      left: { val: 1 }
    },
    right: {
    	val: 10,
      right: {
      	val: 14,
        left: {
        	val: 13
        }
      }
    }
  },
  right: {
    val: 6,
    left: { val: 4 },
    right: { val: 7 }
  }
}

let traverse = (node, depth, maxArrStore) => {
  depth = depth + 1;
  
  if(node.left) traverse(node.left, depth, maxArrStore);
  if(node.right) traverse(node.right, depth, maxArrStore);
  if(!node.left && !node.right) {
  	if(maxArrStore[0] < depth) {
    	maxArrStore[0] = depth;
    }
  }
}

function visibleNodes(root) {
   let depth = 0;
   let maxArrStore = [0];
   traverse(root, depth, maxArrStore);
   return maxArrStore[0];
}

console.log(visibleNodes(root));