DOM Challenge #5

Shweta Kale - Feb 25 - - Dev Community

Find the deepest node in a DOM tree.

To get deepest node in DOM tree we can use Depth first search (DFS).
Considerations ->
We can have multiple nodes at deepest levels or single node as well. So I will consider we need to return first deepest node.

const getDeepestNode = (root) => {
  const stack = [{node: root, depth: 0}];
  let deepestNode = root;
  let maxDepth = 0;
  while(stack.length > 0){
    const {node, depth} = stack.pop();
    if (depth > maxDepth) {
       maxDepth = depth;
       deepestNode = node;
    }
    for (let i=node.children.length - 1; i >= 0; i++){
       stack.push({node: node.children[i], depth: depth + 1})
    }
  }
  return deepestNode;
}

Enter fullscreen mode Exit fullscreen mode

This problem can also be modified to return all nodes at deepest level.

. . . . . . . . . . . . . . .