2013-09-21 46 views
0

我需要使用遞歸從鏈表中刪除一個節點。這是我到目前爲止的代碼...如何使用遞歸從鏈表中刪除節點?

public class SortedSetNode implements Set { 
    protected String value; 
    protected SortedSetNode next; 

public boolean remove(String element) { 

    if (value.equals(element)) 
    { 
     next = next.getNext(); 
     return true; 
    } 
    else 
    { 
     return next.remove(element); 
    } 
} 

回答

1

好了,不知道問題是什麼,你所面對的,你需要在裏面的條款,以檢查要刪除的項目是否實際上是鏈表,即

if(next == null){ 
    return false; 
} 

除此之外,你的代碼看起來不錯。你遇到的問題是什麼?

0

如果value屬性是當前節點的值,那麼當值等於元素時,您需要刪除它自己,而不是刪除下一個。除非它是下一個節點的價值。 您可能需要一個起點,因此當您比較值時,您將下一個節點的值與字符串進行比較,如果找到,請執行next = next.getNext();。當然,需要檢查null。

+0

如果我將其更改爲此,該怎麼辦? 'if(next.value.equals(element))' – lauraxx

+0

您是試圖從頭編寫自己的數據結構,還是想實現java.util.Set接口?無論如何,看看那些現有的實現將會有所幫助。 –