[英]Linkedlist polynomial why my output only print first term
我剛剛編寫了一個添加兩個多項式鏈表的程序。 我的輸出只打印多項式的第一項。
我無法弄清楚什么是錯誤。 我想在這里得到一些幫助。 有人可以告訴我的代碼有什么問題。
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 && 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;
}
如果其中一個列表先完成,則其他列表中的其余項目將被忽略並且不會被添加到總和中。
添加額外的循環
while(list1 != null) {
sum.addNode(list1.coe,list1.exp);
list1=list1.next;
}
和
while(list2 != null) {
sum.addNode(list2.coe,list2.exp);
list2=list2.next;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.