2013-02-03 60 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