POP方法链表

时间:2016-06-20 12:43:38

标签: java data-structures linked-list

我已经用Java实现了一个pop方法我会用它来进行分隔符匹配,尽管它在列表中留下了一个元素。

    public int length(){
    Node current = this.head;
    int length = 0;
        while(current != null){
            current = current.getNextNode();
            length += 1;
        }
    return length;
}

public char pop(){
    Node current = this.head;
    Node lastN = this.last;

    for(int i = 0; i < length() - 2; i++){
        current = current.getNextNode();
    }
    current.setNextNode(null);
    this.last = current;

    return lastN.getBracket();
}

如果长度为&gt; = 1?,或者有任何改进我的代码的建议,如何弹出第一个元素。

2 个答案:

答案 0 :(得分:0)

使用java.util.LinkedList。

通过addFirst()addLast()size()removeFirst()removeLast(),您可以获得保障。

或者,请以另一种方式检查此delimiter check example

在您的代码中,您会错过&#34;首字母&#34;或者&#34;最后一个元素&#34;案件,这是特别的。你应该检查this.head == this.last的情况;你应该返回最后一个元素并清理列表的情况。

答案 1 :(得分:0)

为什么要遍历循环中的列表元素?怎么样而不是那个:

if (this.head != null)
{
    char val = this.head.getBracket();
    this.head = this.head.getNextNode();
}

此代码段将删除第一个元素并将头部设置为指向第二个元素。我猜JVM会删除旧的head。如果列表是循环的,那么还要将last设置为指向新的头部。