我有一个方法,它接受一个多项式Linked List
作为参数,并返回一个新的列表,这是多项式的导数。
这就是我所拥有的:
private PolyNode derivative(PolyNode poly) {
PolyNode temp = new PolyNode(0, 0);
PolyNode res = temp;
// While both Lists are not empty
while (poly != null) {
if (poly.power > 0) {
temp.next = new PolyNode(poly.coef * poly.power, poly.power - 1);
temp = temp.next;
poly = poly.next;
}
}
// Return new List, the result polynomial
return res.next;
}
当我运行程序时,它永远不会完成编译并部分返回列表;只有功率高于0的术语。 我尝试添加
if (poly.power == 0) {
temp.next = new PolyNode(0,0);
temp = temp.next;
poly = poly.next;
}
但这似乎不起作用。有什么想法吗?
答案 0 :(得分:3)
仔细查看while
循环:
// While both Lists are not empty
while (poly != null) {
if (poly.power > 0) {
temp.next = new PolyNode(poly.coef * poly.power, poly.power - 1);
temp = temp.next;
poly = poly.next;
}
}
poly
除非power
大于零,否则不会发生变化。因此,当找到poly
且power
为while (poly != null) {
if (poly.power > 0) {
temp.next = new PolyNode(poly.coef * poly.power, poly.power - 1);
temp = temp.next;
}
poly = poly.next;
}
时,您的循环就会卡住。
将其更改为:
power == 0
这样你就可以有效地抛弃任何常量(poly
),同时仍然在223.25.99.163</td>
<td ng-bind="proxy.PORT" class="ng-binding">1180</td>
列表上循环。