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 –