簡體   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