2013-02-03 61 views
0

繼最後一個元素是我嘗試: -刪除單鏈表

public void removeTail(){ 
    Node precurrent=null; 
    Node transverse=head; 
    if(size != 0) { 
     while(transverse.getNext() !=null) { 
      System.out.println("oh"+transverse.getElement()); 
      precurrent=transverse; 
      transverse=transverse.getNext(); 
     } 
     precurrent.setNext(null); 
     size--; 
    } 
    else{ 
     System.out.println("List is all ready empty"); 
    } 
} 

上面代碼的問題是,當只有一個節點離開了,我嘗試刪除它,它給了錯誤。這是因爲我定義了預期的方式。請建議應該如何處理這種情況。我不想添加大小== 1的情況。

+0

真的做到了?在谷歌上返回的數千個鏈接列表示例中,它們都沒有幫助? –

+0

嗯,你永遠不會刪除**任何東西,你只能迭代 –

+0

@Ivaylo Strandjev:我將第二個最後節點的引用設置爲null。這相當於刪除最後一個節點。或者我應該改進它? – Addict

回答

0

有兩種可能的方法。

要麼檢查,如果你的尺寸等於1

或者,這將是我的解決方案,與head初始化precurrent就像你transverse

+0

第二選擇看起來優雅 – Addict