删除单链表的最后一个元素

时间:2013-02-03 10:18:01

标签: java data-structures linked-list

以下是我的尝试: -

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");
    }
}

上面代码的问题是,当只剩下一个节点时,它会出错,我尝试将其删除。这是因为我定义的预处理方式。请建议应该采取什么措施来处理这种情况。我不想添加size == 1的情况。

1 个答案:

答案 0 :(得分:0)

有两种可能的方式。

检查你的尺码是否等于1。

或者这将是我的解决方案,使用precurrent初始化head就像使用transverse

一样