1,题目:
2,思路:
(1)首先建一个新的链表,用来存放两数之和
(2)定义一个满十进一的数num
(3)在循环里,按照ll1和l2 来计算两个数之和sum
(4)对于这个数sum计算其是否是满十,满十的话,取十位数给num,个位数就是新链表的结果
(5)然后,l1和l2 的指针往后移,在循环计算即可。
3,代码:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
int num = 0;//定义满十进一的数
ListNode proNode = new ListNode(0);//定义一个listNode,作为链表头
ListNode currentNode = new ListNode(0);//定义一个listNode,接受两数的和
proNode.next = currentNode;//先链接两个Node
do {
int sum = (l1 != null ? l1.val : 0) + (l2 != null ? l2.val : 0) + num;//两数相加
num = sum / 10;//是否满十
int result = sum % 10;//得出个位数
currentNode.val = result;
l1 = l1 != null ? l1.next : l1;
l2 = l2 != null ? l2.next : l2;
if(l1 != null || l2 != null || num != 0) {
currentNode.next = new ListNode(0);
currentNode = currentNode.next;
}
}while(l1 != null || l2 != null || num !=0);
return proNode.next;
}
}