给你两个 非空 的链表,表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的,并且每个节点只能存储 一位 数字。
第一次遍历:相加,val大于10了,当其中一个为0时,赋值为0相加
第二次遍历:把val大于10的处理了,存在进位为null的情况,此时赋值为1
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
ListNode l3 =new ListNode(l1.val+l2.val);
l1=l1.next;
l2=l2.next;
ListNode l4=l3;
while(l1!=null|| l2!=null){
if(l1==null){
l1=new ListNode(0);
}
if(l2==null){
l2=new ListNode(0);
}
l3.next=new ListNode(l1.val+l2.val);
l3=l3.next;
l1=l1.next;
l2=l2.next;
}
ListNode l5= l4;
while(l4!=null){
if(l4.val>=10){
l4.val=l4.val-10;
if(l4.next!=null){
l4.next.val=l4.next.val+1;
}else{
l4.next=new ListNode(1);
}
}
l4=l4.next;
}
return l5;
}