MST

星途 面试题库

面试题:TypeScript泛型在树形数据结构中的递归处理

给定一个树形数据结构,节点定义如下:interface TreeNode<T> { value: T; children: TreeNode<T>[] | null; }。请编写一个TypeScript泛型函数,能够对树进行深度优先搜索,并返回符合特定条件的节点值。条件通过一个回调函数传入,例如,搜索值大于10的节点值。
47.8万 热度难度
前端开发TypeScript

知识考点

AI 面试

面试题答案

一键面试
interface TreeNode<T> {
    value: T;
    children: TreeNode<T>[] | null;
}

function dfsSearch<T>(root: TreeNode<T>, callback: (value: T) => boolean): T[] {
    const result: T[] = [];
    function traverse(node: TreeNode<T>) {
        if (callback(node.value)) {
            result.push(node.value);
        }
        if (node.children) {
            for (const child of node.children) {
                traverse(child);
            }
        }
    }
    traverse(root);
    return result;
}