Solution to LeetCode Add Two Numbers problem.
This is just an implementation exercise, no tricky algorithms here.
public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode head = null; ListNode cur = null; int carry = 0; while(l1 != null || l2 != null){ int value1 = l1 != null ? l1.val : 0; int value2 = l2 != null ? l2.val : 0; // both non-null int val = value1 + value2 + carry; int mod = val % 10; carry = val / 10; ListNode newValue = new ListNode(mod); if(head == null){ head = newValue; cur = head; } else cur.next = newValue; cur = newValue; l1 = l1 != null ? l1.next : null; l2 = l2 != null ? l2.next : null; } if(carry != 0){ ListNode c = new ListNode(carry); cur.next = c; } return head; }