问答详情
源自:1-4 二叉树创建的代码实现

方法insert报错

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

提问者:极简小白 2017-09-10 18:12

个回答

  • 慕姐8792436
    2017-12-23 22:58:56

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

  • 极简小白
    2017-11-13 16:26:45

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

       })

    //报错....

  • 一张白纸_
    2017-09-11 14:55:43

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



    即可