public Linearlist mul(Linearlist l1, Linearlist l2) {
Linearlist sum = new Linearlist();
int carry = 0;
long pow = 0;
while (l2.size > 0) {
Linearlist row = new Linearlist();
Linearlist temp1 = l1;
int operand = l2.Delfirst();
for (int i = 0; i < pow; i++) {
row.InsertFirst(0);
}
pow++;
while (temp1.size > 0) {
int result;
result = temp1.Delfirst() * operand + carry;
if (result > 9) {
carry = result / 10;
result = result % 10;
}
row.InsertFirst(result);
}
if (carry > 0) {
row.InsertFirst(carry);
}
sum = sumList(row, sum);
}
return sum;
}
这是我的代码,我希望将两个列表的数字相乘
所以写这个代码,它适用于我的第二个列表上的第一次删除。
当我在工作时第一次调试此代码时
而下一次它没有进入第二次
问题在哪里temp1.size
不大于0 ???
答案 0 :(得分:0)
因为当您将两个链接列表分配在一起时,它们会获得相同的地址 所以分配的链接列表实际上是第一个链接列表。 要分配链接列表,您必须将第一个链接列表的副本复制到第二个