Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public ListNode reverse(ListNode root){
- ListNode cur = root;
- ListNode prev = null;
- while (cur != null) {
- ListNode temp = cur.next;
- cur.next = prev;
- prev = cur;
- cur = temp;
- }
- return prev;
- }
- public ListNode addTwoNumbers(ListNode l1, ListNode l2) {
- ListNode l1Reversed = reverse(l1);
- ListNode l2Reversed = reverse(l2);
- ListNode sumHead = new ListNode();
- ListNode curr = sumHead;
- int carry = 0;
- int sum = 0;
- while (l1Reversed != null || l2Reversed != null || carry != 0) {
- sum = carry;
- if (l1Reversed != null) {
- sum += l1Reversed.val;
- l1Reversed = l1Reversed.next;
- }
- if (l2Reversed != null) {
- sum += l2Reversed.val;
- l2Reversed = l2Reversed.next;
- }
- carry = sum / 10;
- sum = sum % 10;
- curr.next = new ListNode(sum);
- curr = curr.next;
- }
- ListNode ansReversed = sumHead.next;
- return reverse(ansReversed);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement