AVL树插入方法错误:空指针异常

时间:2019-04-20 04:26:07

标签: java avl-tree

因此,对于AVL Tree classinserts到树中有一个新元素,我有此方法。我以为我已经有了相应的代码,但是它一直想抛出NullPointerException。当整数if小于根数据时,它从e条件开始。什么原因造成的任何想法?我一点也不知道。

编辑1:好,用else块更新了它。不再收到错误,但似乎没有在树中插入任何内容。感觉我可能在这里或那里错过了一步。

编辑2:好吧,我意识到了两件事。首先,我太愚蠢了,以至于没有意识到对于我的root == null来说,我必须将根设置为带有该元素的new AVLNode,这对我来说是愚蠢的。我还意识到,在那之后,它想无限地插入树的右侧,至少我认为是这样。

编辑3:结果是,导致无限循环的是我的rebalance()方法。那解决了我的问题。

 public void insert(int e) {
    if (root == null) {

        root = new AVLNode(e);
    }
    else if (e < root.getData()) {
        root.getLeft().insert(e);
        this.rebalance();
        this.setHeight();
    }

    else if (e > root.getData()) {
        root.getRight().insert(e);
        this.rebalance();
        this.setHeight();
    }
}

0 个答案:

没有答案