problem solving

[LeetCode]#2 Add Two Numbers

Shinuk Yi 2020. 3. 14. 09:45
/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
#include <iostream>
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode newNode(0);
        ListNode *returnNode = &newNode;
        int sum = 0;
        int curTen = 0;
        while(l1 || l2 || curTen) {
            int val1 = l1 != NULL ? l1->val : 0;
            int val2 = l2 != NULL ? l2->val : 0;
            
            sum = (val1 + val2) + curTen;
            returnNode->next = new ListNode(sum % 10);
            curTen = sum / 10;
            returnNode = returnNode->next;
            l1 = l1 != NULL ? l1->next : NULL;
            l2 = l2 != NULL ? l2->next : NULL;
        }
 
        return newNode.next;
    }
};
cs