BST の再帰的な挿入方法に取り組んでいます。この関数は、再帰的なヘルパー メソッドであると想定され、Node.js というプライベート クラスにあります。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;
}
}