/**
* Definition for singly-linked list.
* public class ListNode {
* int val;
* ListNode next;
* ListNode(int x) { val = x; }
* }
*/
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
//利用先求得整数int结果的方法会造成溢出的错误
int isOver=0;
ListNode t1=l1;
ListNode t2=l2;
ListNode head=null;
ListNode last=null;
while(t1!=null&&t2!=null)
{
int temp=t1.val+t2.val+isOver;
if(temp>=10)
isOver=1;
else
isOver=0;
ListNode t=new ListNode(temp%10);
if(head==null)
head=t;
if(last!=null)
last.next=t;
last=t;
t1=t1.next;
t2=t2.next;
}
while(t1!=null)
{
int temp=t1.val+isOver;
if(temp>=10)
isOver=1;
else
isOver=0;
ListNode t=new ListNode(temp%10);
if(head==null)
head=t;
if(last!=null)
last.next=t;
last=t;
t1=t1.next;
}
while(t2!=null)
{
int temp=t2.val+isOver;
if(temp>=10)
isOver=1;
else
isOver=0;
ListNode t=new ListNode(temp%10);
if(head==null)
head=t;
if(last!=null)
last.next=t;
last=t;
t2=t2.next;
}
if(t1==null&&t2==null&&isOver==1)
{
ListNode t=new ListNode(1);
if(head==null)
head=t;
if(last!=null)
last.next=t;
last=t;
}
return head;
}
}