Вычитание переданного связанного списка в методе из вызывающего связанного списка

#java #methods #linked-list

#java #методы #связанный список

Вопрос:

По сути, эта проблема принимает связанный список в качестве параметра и вычитает его содержимое из вызывающего связанного списка, если в обоих имеется одинаковое содержимое. Я должен сделать это таким образом (чтобы не изменять параметры).

Например: l1.subtractList(l2) будет вычитать содержимое l2 из l1.

Проблема здесь в том, что вызывающий связанный список имеет 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();    
       }

}
  

Ответ №1:

Что такое метод listRemove? Зачем вам нужен count? Просто просмотрите аргумент 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();
}
  

Комментарии:

1. Это специфический метод для этого назначения. Я понял это, но ваш ответ помог мне добраться туда! Спасибо