<分区>
我写了下面的代码来计算链表表示的两个数的和。举一个最简单的例子,两个相同的链表是3->8->2->1->null
,输出应该是7->6->4->2->null
,但是我得到的结果是6->6->4->2->null
。请帮忙!!谢谢!
public ListNode addListF(ListNode l1, ListNode l2, int carry) {
if (l1 == null && l2 == null && carry == 0) {
return null;
}
ListNode result = new ListNode();
int len1 = l1.length(l1);
int len2 = l2.length(l2);
/*pad the shorter list with 0*/
if (len1 < len2) {
l1 = padList(l1, len2 - len1);
} else {
l2 = padList(l2, len1 - len2);
}
result.next = addListF(l1.next, l2.next, carry);
int sum = carry + l1.data + l2.data;
result.data = sum % 10;
carry = sum / 10;
return result;
}