```
public class Solution {
public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
if(l1==null)
return l2;
if(l2==null)
return l1;
ListNode p=l1;
ListNode q=l2;
int x=1;
while(true)
{
p.val=p.val+q.val;
ListNode t=p;
while(t.val>9)
{
t.val=t.val-10;
if(t.next==null)
t.next=new ListNode(x);
else
t.next.val=t.next.val+1;
t=t.next;
}
if(p.next==null)
break;
if(q.next==null)
break;
p=p.next;
q=q.next;
}
if(p.next==null)
p.next=q.next;
return l1;
}
```

}