function buildTree(nodes){
const nodeMap = new Map();
const result = [];
nodes.forEach(node=>{
node.children =[];
nodeMap.set(node.id,node);
})
nodes.forEach(node=>{
if(node.pid ===null){
result.push(node);
} else {
const parent = nodeMap.get(node.pid);
if(parent){
parent.children.push(node)
}
}
})
return result
}
const nodes=[
{id:1,pid:null},
{id:2, pid:1},
{id:3,pid:1},
{id:4,pid:2},
{id:5,pid:3}
]
console.log(buildTree(nodes))