![](/img/trans.png)
[英]Finding uppercase in linkedlist and returning new linkedlist with found elements?
[英]Returning a new LinkedList (custom built)
我試圖在過濾后返回一個新的數字linkedList
。 我在這里修改了它就地調用的原始列表,然后原始列表上的toString()
失敗。 如何在不干擾調用此方法的原始列表的情況下返回新列表?
public CustomLinkedList filterEvenInts() {
Node current = data;
// note: returned list should have values in the order they appeared in the original list.
if (current == null) {
return new CustomLinkedList();
}
Node prev = current;
while (prev.next != null) {
if (prev.next.value % 2 != 0) {
prev.next = prev.next.next;
} else {
prev = prev.next;
}
}
// delete current if odd too
if (current.next.value % 2 != 0) {
current = current.next;
prev = current;
}
CustomLinkedList newList = new CustomLinkedList();
newList.data = prev;
return newList;
}
據我了解,您可能必須先以某種方式復制列表。 僅僅創建一個新的並將新的數據設置為舊的是行不通的,因為您仍然引用相同的 object。一種方法是通過舊列表的每個節點到 go,創建一個新的從舊節點的值中提取節點並將新節點添加到新列表中。 編輯新列表不會影響舊列表。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.