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;
}
This problem can also be modified to return all nodes at deepest level.