Leetcode

Add Two Numbers leetcode 2

치킨먹고싶어요 2022. 5. 29. 19:58

FIRST:

 
class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        ListNode* l3 = new ListNode;
        ListNode* t[111];
        t[0= new ListNode;
        l3->next = t[0];
        int add = 0, sum;
        for(int i = 0; l1 or l2 or add; i++) {
            sum = 0;
            t[i + 1= new ListNode;
            if (l1) {
                sum += l1->val;
                l1 = l1->next;
            }
            if (l2) {
                sum += l2->val;
                l2 = l2->next;
            }
            t[i]->val = ((sum + add) % 10);
            if (sum + add >= 10add = 1;
            else add = 0;
            if (l1 or l2 or add) t[i]->next = t[i + 1];
        }
        return l3->next;
    }
};
cs

 

SECOND:

 

class Solution {
public:
    ListNode* addTwoNumbers(ListNode* l1, ListNode* l2) {
        string s[111];
        int i, j;
        for (i = 0; l1 != NULL; i++) {
            s[i] = to_string(l1->val);
            l1 = l1 -> next;
        }
        for (j = 0; l2 != NULL; j++) {
            if (s[j] == "") s[j] = to_string(l2->val);
            else s[j] = to_string(l2->val + stoi(s[j]));
            l2 = l2 -> next;
        }
        int l;
        for (l = 0; s[l] != ""; l++) {
            if (10 <= stoi(s[l])) {
                if (s[l + 1== "") s[l + 1= to_string(1);
                else s[l + 1= to_string(stoi(s[l + 1]) + 1);
                s[l] = to_string(stoi(s[l]) - 10);
            }
        }
        ListNode* l3[111];
        for (i = 0; i <= l; i++) l3[i] = new ListNode;
        for (i = 0; i < l; i++) {
            l3[i]->val = stoi(s[i]);
            if (s[i + 1== ""break;
            l3[i]->next = l3[i + 1];
        }
        return l3[0];
    }
};
cs