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