📅  最后修改于: 2023-12-03 15:40:54.800000             🧑  作者: Mango
本程序用于解决链表表示的两个数字相加的问题。具体思路是通过遍历链表将对应的数字相加,并且考虑进位,最终得到答案。
本程序可以接收两个链表作为输入,用于表示两个数字,最终输出一个新的链表表示两个数字相加的和。
以下是Java代码实现的片段:
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode dummy = new ListNode(0);
ListNode tmp = dummy;
int carry = 0;
while (l1 != null || l2 != null || carry != 0) {
int sum = (l1 != null ? l1.val : 0) + (l2 != null ? l2.val : 0) + carry;
carry = sum >= 10 ? 1 : 0;
sum = sum % 10;
tmp.next = new ListNode(sum);
tmp = tmp.next;
l1 = l1 != null ? l1.next : l1;
l2 = l2 != null ? l2.next : l2;
}
return dummy.next;
}
在Java程序中调用该函数即可,例如:
ListNode l1 = new ListNode(2);
l1.next = new ListNode(4);
l1.next.next = new ListNode(3);
ListNode l2 = new ListNode(5);
l2.next = new ListNode(6);
l2.next.next = new ListNode(4);
ListNode result = addTwoNumbers(l1, l2);
需要使用Java的ListNode类和链表操作。如果链表长度不同,需要在较短的链表前面加零。