面试题答案
一键面试// 定义树形数据结构
type TreeNode = {
id: number;
name: string;
children?: TreeNode[];
};
// 构建树
const tree: TreeNode = {
id: 1,
name: 'root',
children: [
{
id: 2,
name: 'child1',
children: [
{
id: 3,
name: 'grandchild1'
}
]
},
{
id: 4,
name: 'child2'
}
]
};
// 获取所有节点id的函数
function getAllIds(node: TreeNode): number[] {
const ids: number[] = [node.id];
if (node.children) {
for (const child of node.children) {
ids.push(...getAllIds(child));
}
}
return ids;
}
// 测试
console.log(getAllIds(tree));