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 }