思路:
有几个方面需要考虑
- 双指针遍历,如果出现和大于10那么向前进1
- 如果长度不一样那么长的部分直接落下并且考虑进1 的问题
代码如下:
class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if (l1==null||l2==null){
return l1==null?l2:l1;
}
//定义一个结果链表
ListNode node = new ListNode(0);
ListNode cur=node;
int ca=0;
int v1=0;
int v2=0;
while (l1!=null||l2!=null){
v1=l1==null?0:l1.val;
v2=l2==null?0:l2.val;
ca=v1+v2+ca;
cur.next=new ListNode(ca%10);
ca=ca/10;
cur=cur.next;
l1=l1==null? null :l1.next;
l2=l2==null? null :l2.next;
}
if (ca==1){
cur.next=new ListNode(ca);
}
return node.next;
}
}