Полином Linkedlist почему мой вывод печатает только первый термин

#java #data-structures

#java #структуры данных

Вопрос:

Я только что написал программу, которая добавляет два полиномиальных связанных списка. мой вывод печатает только первый член полиномов.

Я не могу понять, в чем ошибка. Я хочу получить некоторую помощь здесь. может кто-нибудь сказать, что не так с моим кодом.

 public void addNode(int cof, int exp) {
    PNode node = new PNode(cof, exp);
    if (first == null) {
        first = last = node;
        return;
    }
    last.next = node;
    last = node;
}
public PolynomialLinkedList add(PolynomialLinkedList s) {
    PolynomialLinkedList sum = new PolynomialLinkedList();

    //implement this method
    PNode list1 = first;
    PNode list2 = s.first;
    while (list1 != null amp;amp; list2 != null) {
        if (list1.exp == list2.exp) {
            sum.addNode(list1.coe   list2.coe, list1.exp);
            list1 = list1.next;
            list2 = list2.next;
        } else if (list1.exp > list2.exp) {
            sum.addNode(list1.coe, list1.exp);
            list1 = list1.next;
        } else if (list2.exp > list1.exp) {
            sum.addNode(list2.coe, list2.exp);
            list2 = list2.next;
        }
    }
    return sum;
}
  

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

1. Где ваш метод печати (или toString)?

Ответ №1:

Если один из списков заканчивается первым, остальные элементы в другом списке игнорируются и не добавляются к сумме.

Добавьте дополнительные циклы

 while(list1 != null) {
 sum.addNode(list1.coe,list1.exp);
            list1=list1.next;
}
  

и

 while(list2 != null) {
 sum.addNode(list2.coe,list2.exp);
            list2=list2.next;
}