我正在爲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