1 /**
2 * Definition for singly-linked list.
3 * public class ListNode {
4 * int val;
5 * ListNode next;
6 * ListNode() {}
7 * ListNode(int val) { this.val = val; }
8 * ListNode(int val, ListNode next) { this.val = val; this.next = next; }
9 * }
10 */
11 class Solution {
12 public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
13 int temp = 0;
14 ListNode head = new ListNode();
15 ListNode res = head;
16 while(l1 != null || l2 != null){
17 int x = temp;
18 temp = 0;
19 if(l1 != null){
20 x += l1.val;
21 l1 = l1.next;
22 }
23 if(l2 != null){
24 x += l2.val;
25 l2 = l2.next;
26 }
27 if(x / 10 > 0){
28 x %= 10;
29 temp = 1;
30 }
31 res.next = new ListNode(x);
32 res = res.next;
33 }
34 if(temp > 0) res.next = new ListNode(1);
35 return head.next;
36 }
37 }