嗨,我接到了一项任务,要实现一个遍历 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/