我試圖代碼,移動「N」節點的數量在雙向從前面鏈表,並將它們添加到後面的函數:Java鏈表 - 如何複製數據?
public class PetList {
protected class LinkNode {
protected LinkNode next;
protected LinkNode prev;
protected Pet animal; // note that my data within a node is an object
public LinkNode() {
next = prev = null;
}
}
protected LinkNode first;
protected LinkNode last;
public PetList() {
first = last = null;
}
//...
//... other functions
public void Rotate(int n) {
}
現在我知道如何插入一個節點後,例如:
public void insertRear(Pet giraffe) {
LinkNode temp = new LinkNode();
temp.animal = new Pet(giraffe);
if(first == null) {
first = last = temp;
return;
}
temp.prev = last;
last.next = temp;
last = temp;
}
但在我的旋轉功能:
public void Rotate(int n)
我沒有一個對象作爲參數。也就是說,如何創建臨時LinkNode並將數據複製到第一個LinkNode的對象中,然後將我的臨時節點移回到後面,刪除我的第一個節點?或者還有另一種更好的方法來做到這一點?謝謝你的幫助。
移動數據與複製數據不同 – efekctive
爲什麼你需要一個對象作爲參數?您已經說過,您只是想將列表中的第一件事物移到最後。 – azurefrog
取第一個節點,將其刪除,將下一個節點標記爲列表的新頭,然後將第一個節點放在末尾。 – njzk2