[英]Java - I was modifying a stack linked list into a queue linked list but my dequeue method still behaves like 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.