const Tree = function(value){
this.value = value
this.right = null
this.left = null
}
Tree.prototype.insert = function(number){
if(this.left === null){
this.left = new Tree(number)
} else if(this.right === null){
this.right = new Tree(number)
} else {
this.left.insert(number)
}
}
const arbre = new Tree(10)
arbre.insert(5)
arbre.insert(2)
arbre.insert(1)
arbre.insert(20)
arbre.insert(6)
console.log(JSON.stringify(arbre,null,4))

我正在尝试构建一个平衡的二叉树。这意味着每次插入一个值时,它将首先填充左节点,然后填充右节点,依此类推。这样的事情:
0
/ \
1 2
/\ /
34 5

我的代码继续在左侧构建,但不会在右侧返回以维持树的平衡。 它的确如下:
0
/ \
1 2
/\
34
/
5