javascript - 在 typescript 中的 BinTree 上进行预购旅行

标签 javascript typescript

嗨,我接到了一项任务,要实现一个遍历 bin 树的函数,并且 按预定顺序返回其所有值。代码如下:

interface BinTree {
    root: number;
    left?: BinTree;
    right?: BinTree;
};
const TreePreArray =(t:BinTree):number[] => {
    let list = new Array<number>();
    if (t==undefined) {return list }
    else {
        list.push(t.root)
        list.concat(TreePreArray(t.left))
        list.concat(TreePreArray(t.right))
    }
    return list
}
let bn : BinTree = {
    root: 1,
    left: { root: 2 },
    right: { root: 3 }
}
console.log((TreePreArray(bn)));

但输出只有 [1] 而不是 [1,2,3] 我从这个链接复制了这个想法 Recursive Tree Traversal Method With Return Type Array并用 typescript 实现它。

最佳答案

您需要推送或使用concat 的结果。由于缺少对 concat 结果的赋值,您会错过遍历分支的结果。

要么

list = list.concat(TreePreArray(t.left))
list = list.concat(TreePreArray(t.right))

list.push(...TreePreArray(t.left))
list.push(...TreePreArray(t.right))

关于javascript - 在 typescript 中的 BinTree 上进行预购旅行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49609088/

相关文章:

javascript - 使用谷歌地图无法通过邮政编码在 map 上获取正确的位置

javascript - 如何访问json数据属性

javascript - 在鼠标输入时突出显示图像

javascript - 使用javascript替换字符串值并保留部分替换字符串

javascript - Typescript,自返回通用

javascript - 本地存储错误

Angular 2 TypeScript如何在数组中查找元素

typescript - JQuery 事件对象和目标

css - 仅在图像完全下载后显示图像

javascript - 从 DOM 复制字符串