public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//把两个链表当成相同长度
ListNode head=new ListNode(0);//头结点
ListNode cur=head;//开始指向头节点
int up=0;//进位
int re;//对10的余数
int sum;//两节点与进位的和
while(l1!=null||l2!=null){
int num1=l1==null?0:l1.val;
int num2=l2==null?0:l2.val;
sum=up+num1+num2;
re=sum%10;
up=sum/10;
cur.next=new ListNode(re);
cur=cur.next;
if(l1!=null){
l1=l1.next;
}
if(l2!=null){
l2=l2.next;
}
}
if(up==1){
cur.next=new ListNode(1);
}
return head.next;
}