【发布时间】:2021-01-31 09:32:54
【问题描述】:
下面是一个带有插入函数的 BST 的实现。目前,该代码不起作用;它只会吐出Tree { root: null }
当我尝试调试它时,它似乎成功地将新节点添加到了正确的位置,但是一旦它从函数返回,所有数据都丢失了,并且最终没有插入任何东西。
代码如下:
class Node {
constructor(value) {
this.value = value
this.left = null;
this.right = null;
}
}
class Tree {
constructor() {
this.root = null
}
insert(value) {
const insertHelper = (value, node) => {
if (node === null) {
node = new Node(value)
return null
} else if (node.value === node.value) {
console.log("Value exists.")
return null;
} else if (node.value < node.value) {
return this.insertHelper(node, node.right)
} else {
return this.insertHelper(node, node.left)
}
}
return insertHelper(value, this.root)
}
}
var tree = new Tree;
tree.insert(10)
tree.insert(5)
console.log(tree);
【问题讨论】:
标签: javascript recursion binary-search-tree