我正在为BST的递归插入方法。假设这个函数是一个递归辅助方法,并且在一个名为Node的私有类中。 Node类位于一个名为BinarySearchTree的类中,该类包含一个根实例变量。 当我试图插入一个元素,我在得到一个NullPointerException:插入BST无头节点JAVA
this.left(插入)(((节点)左).element);
我不确定为什么发生这种情况。如果我理解正确,在BST中,我想将该项目插入横贯路径的最后一个位置。任何帮助表示赞赏!
private class Node implements BinaryNode<E>
{
E item;
BinaryNode<E> left, right;
public BinaryNode<E> insert(E item)
{
int compare = item.compareTo(((Node)root).item);
if(root == null)
{
root = new Node();
((Node)root).item = item;
}
else if(compare < 0)
{
this.left = insert(((Node)left).item);
}
else if(compare > 0)
{
this.right = insert(((Node)right).item);
}
return root;
}
}
当我检查我的if语句中的null(即if(left == null))时,我创建了一个新节点。但是,问题依然存在。 – Petiatil