本质上,这个问题的作用是将一个链表作为参数,如果调用链表中存在相同的内容,则从调用链表中减去其内容。我必须这样做(所以不改变参数)。
例如: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();
}
}
最佳答案
什么是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();
}
关于java - 从调用链表中减去方法中传递的链表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39890285/