繁体   English   中英

POP方法链表

[英]POP method 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();
}

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

使用java.util.LinkedList。

使用addFirst()addLast()size()removeFirst()removeLast()您将获得覆盖。

或者,以另一种方式检查此分隔符检查示例

在你的代码中,你会错过“初始”或“最后一个元素”的情况,这是特殊的。 你应该检查this.head == this.last的情况; 应该返回最后一个元素并清理列表的情况。

为什么要在循环中移动列表元素? 怎么样而不是:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM