我正在研究 BST 的递归插入方法。这个函数被认为是一个递归辅助方法,并且位于一个名为 Node 的私有类中。Node 类位于名为 BinarySearchTree 的类中,该类包含根的实例变量。当我尝试插入一个元素时,我在以下位置收到 NullPointerException:
this.left = insert(((Node)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;
}
}