Witam mam taki mały problem, otóż ciągle wywala mi błąd NullPointerException. Przy wywołaniu x.rodzic=y.rodzic;. Po krótkiej analizie, doszedłem do tego, że zmienna x ciągle jest pusta, przy odpowiednim zestawie danych. Chciałbym się dowiedzieć, jak naprawić ten błąd. Sam już po prostu pomysłu na to nie mam.
Element delete(Element DeleteNode)
{
Element x=null,y=null;
if((DeleteNode.left==null)||(DeleteNode.right==null))
y=DeleteNode;
else
y=Nastepnik(DeleteNode,root);
if (y.left != null)
x=y.left;
else
x=y.right;
x.rodzic=y.rodzic;
if (y.rodzic == null)
root = x;
else
if (y == y.rodzic.left)
y.rodzic.left = x;
else
y.rodzic.right = x;
if (y != DeleteNode)
DeleteNode.value = y.value;
if(isBlack(y))
{ DeleteFixUp(x);}
return y;
}
public Element Nastepnik(Element x, Element root)
{
if( x.right != null )
{ x=Najmniejszy(x.right);
return x;
}
Element succ = null;
while (root != null)
{
if (_comparator.compare(x.value,root.value)==-1)
{
succ = root;
root = root.left;
}
else if ((_comparator.compare(x.value,root.value)==1))
root = root.right;
else
break;
}
return succ;
}