为了账号安全,请及时绑定邮箱和手机立即绑定

方法insert报错

你们这个代码有没有自己测试过?我怎么测试报错,说insert方法不存在

正在回答

3 回答

this.insert这个接口应该是属于BinaryTree这个方法内的,且在判断节点有孩子的时候,递归调用时,传的是下一节点,而不是该节点。

0 回复 有任何疑惑可以回复我~

  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);

   })

//报错....

0 回复 有任何疑惑可以回复我~

    var binaryTree = new BinaryTree();
         nodes.forEach(function(key) {
             binaryTree.insert(key);
         })



即可

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

方法insert报错

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信