public void deleteLeaves(BSTNode<T> p){ //deletes leaves
if(p.left != null){
if(isLeaf(p.left))
p.left = null;
}
else if(p.right != null){
if(isLeaf(p.right))
p.right = null;
}
else{
deleteLeaves(p.right);
deleteLeaves(p.left);
}
}
なぜ、それがリーフを正しく削除しないのかわかりません。それは木の最終的な葉だけを削除するようです。助けになるどんなアドバイスも非常に高く評価されます。バイナリツリーからリーフを削除する
大変ありがとうございました。 – Bill
問題ありません。どういたしまして。 – aioobe
この回答は、私が同じ問題について持っていた問題を解決しました: http://stackoverflow.com/questions/28313390/removing-leaves-from-binary-tree-not-being-represented-properly/28313612#28313612 –