I'm trying to figure out the Java solution for the problem Add Two Numbers from Leetcode.
Below is LeetCode's Java solution but I have questions:
Why is dummyHead.next returned as the result when in the while loop never assigned the number to this listnode?
How works curr assign to dummyHead if curr is equal to dummyHead not the other way?
class Solution { // Add Two Numbers (Java improved) public ListNode addTwoNumbers(ListNode l1, ListNode l2) { ListNode dummyHead = new ListNode(0); ListNode curr = dummyHead; int carry = 0; while (l1 != null || l2 != null || carry != 0) { int x = (l1 != null) ? l1.val : 0; int y = (l2 != null) ? l2.val : 0; int sum = carry + x + y; carry = sum / 10; curr.next = new ListNode(sum % 10); curr = curr.next; if (l1 != null) l1 = l1.next; if (l2 != null) l2 = l2.next; } return dummyHead.next; } }