编辑代码

/**
 * @file 二叉树所有路径
 */

type Tree = {
    value: number;
    left?: Tree;
    right?: Tree;
}
const tree: Tree = {
    value: 1,
    left: {
        value: 2,
        right: { value: 5 }
    },
    right: { value: 3 }
};
function treePath(root: Tree): string[] {
    // 补全此处代码
    if (!root) return [];
    const res: string[] = [];
    function dfs(curNode: Tree, curPath: string = '') {
        if (!curNode.left && !curNode.right) {
            res.push(curPath);
        }
        if (curNode.left) {
            dfs(curNode.left, `${curPath}->${curNode.left.value}`);
        }
        if (curNode.right) {
            dfs(curNode.right, `${curPath}->${curNode.right.value}`);
        }
    }
    dfs(root, `${root.value}`);
    return res;
}
console.log(treePath(tree)) // [ '1->2->5', '1->3' ]

export default {}