![](/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.