我試圖創建,增加了一個int現有的鏈接列表的末尾的方法。鏈表滾動
問:收件採用一個列表中,這不是一個 前哨淋巴結的頭部,和一個int,
n
的方法。該方法應該將第一個節點移動到列表的末尾,同時保持它們的順序不變。例如,如果您有一個列表[1, 3, 5, 7, 9]
和n = 3
,則您的 方法應返回列表:[7, 9, 1, 3, 5]
(返回 的修改列表的頭部)。
這裏是我的問題是關於addlast僅方法:
public class ListItem{
public int value;
public ListItem next;
public ListItem(int value, ListItem next){
this.value = value;
this.next = next;
}
public void addFirst(int x){
head = new ListItem(x, head);
size++
}
public void addLast(int x){
if(head == null){
addFirst(x);
}
else{
ListItem p;
for(p = head; p != null; p = p.next){
p.next = new ListItem(x, null);
size++;
}
}
}
我對如何通過列表的方法迭代有點困惑。在for循環中,它從頭開始,滾動直到沒有p.next。但是裏面的方法看起來像是用新的列表項替換每個p.next,而不是滾動直到結束。代碼的哪部分解釋瞭如何在不添加現有列表中每個地方的新項目的情況下跳過?
你在哪裏定義'head'元素? –
我相信addFirst方法?除非我搞砸了,並且在該方法中定義不會使其向下延伸 –