Solución

@anibalitoaqui_4d3796c3
·23/3/2026TypeScript
solution.tsTypeScript
interface TreeNode {
  id: number;
  parentId: number | null;
  name: string;
  children: TreeNode[];
}

function buildTree(nodes: Omit<TreeNode, 'children'>[]): TreeNode[] {
  const resp: TreeNode[] = [];
  const nodesMap = new Map<number, TreeNode>();
  nodes.forEach(node => {
    nodesMap.set(node.id, {...node, children: []})
  });
  
  nodes.forEach(node => {
    const current = nodesMap.get(node.id);
    if(node.parentId === null){
      resp.push(current)
    } else {
      const parent = nodesMap.get(node.parentId)
      if(parent) {
        parent.children.push(current)
      }
    }
  })
  return resp;
}

// No modificar: necesario para evaluar el resultado.
export { buildTree };
0respuestas
Respuestas
0

Aún no hay respuestas

¡Sé el primero en responder!

Escribir un comentario

Recuerda ser amable. Estás comentando la solución de otra persona. Comparte tu perspectiva de forma constructiva y respetuosa.

Debes iniciar sesión para publicar un comentario.
Markdown