基本上这个问题的作用是将链接列表作为参数,如果两者中都存在相同的内容,则从调用链接列表中减去其内容。我必须这样做(所以不要改变参数)。
例如:l1.subtractList(l2)将从l1中减去l2的内容。
这里的问题是调用链接列表有2个相同的数字,并且该数字也在作为参数传递的链接列表中。我只需删除它的一个实例。
我设法减去除了重复数字之外的所有内容,但我不确定我做错了什么。请记住,这对我来说是一个非常新的主题,所以我可能会偏离基础。但我感谢您提供的任何和所有帮助。感谢。
public void subtractList(LinkedList list)
{
Node current = head;
Node<Integer> temp = list.getFirst();
Integer count = -1;
while (current != null)
if (current == temp){
count++;
list.listRemove(count);
temp = list.getFirst();
}
else
{
current = current.getNext();
}
}
答案 0 :(得分:0)
什么是listRemove方法?你为什么需要数?只需遍历参数list
并检查其元素temp
是否存在于调用链接列表中。您将需要一个外部循环遍历作为参数传递的列表,并且内部循环遍历调用列表以检查需要删除的元素的值,并在需要时将其删除
while(temp!=null)
{
while(current!=null){
//Check if element exists in list
//If yes, remove it from the calling list
}
//Repeat
temp = temp.getNext();
}