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 >= 10) add = 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 |