极简小白
2017-09-10 18:12
你们这个代码有没有自己测试过?我怎么测试报错,说insert方法不存在
this.insert这个接口应该是属于BinaryTree这个方法内的,且在判断节点有孩子的时候,递归调用时,传的是下一节点,而不是该节点。
var root = null;
function BinaryTree() {
var Node = function(key) {
this.key = key;
this.left = null;
this.right = null;
}
}
var insertNode = function(node, newNode) {
if (newNode.key < node.key) {
if (node.left === null) {
node.left = newNode
} else {
insertNode(node, newNode)
}
} else {
if (node.right === null) {
node.right = newNode
} else {
insertNode(node, newNode)
}
}
}
this.insert = function(key) {
var newNode = new Node(key);
if (root === null) {
root = newNode
} else {
insertNode(node, newNode)
}
}
var nodes = [8, 3, 10, 1, 6, 14, 4, 7, 13];
var binaryTree = new BinaryTree();
nodes.forEach(function(key) {
binaryTree.insert(key);
})
//报错....
var binaryTree = new BinaryTree();
nodes.forEach(function(key) {
binaryTree.insert(key);
})
即可
Javascript实现二叉树算法
46934 学习 · 97 问题
相似问题