为什么在Java中的二进制搜索树中编写“ if(root.getElement()== null){// ToDo}”会导致nullpointerexception?

所以我的代码看起来像这样:

public Node insert(Object o){
            return insertHelper(root, o);
        }


        private Node insertHelper(Node root, Object o){
            if (root.getElement()==null){
                root.element=o;
                return root;
            } else if (root.getElement().toString().compareToIgnoreCase(o.toString())>0){
                return insertHelper(root.getLeft(), o);
            } else {
                return insertHelper(root.getRight(), o);
            }
        }

只有我到达insertHelper()中的第一个“ if”,并且得到了nullpointer异常。 Netbeans在下一行显示警告,说我正在取消引用空指针。尽管我也尝试将以下行重写为“ root.setElement(o);”。

我尝试过:将其重写为“ if(root == null)”和“ if(root.element == null)”(这有一个强迫我使元素可公开访问的缺点。我什至尝试重写该方法检查!= null,并得到相同的错误。

评论