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 |
'Leetcode' 카테고리의 다른 글
Remove Nth Node From End of List, LeetCode, c++/cpp/c (0) | 2022.06.01 |
---|---|
leetcode Reverse Integer (0) | 2022.05.29 |
[MySQL] 176. Second Highest Salary[LeetCode Medium] - 1 (0) | 2022.05.25 |
[MySQL] 175. Combine Two Tables [LeetCode Easy] (0) | 2022.05.25 |
[MySQL] 3. 175. Combine Two Tables [LeetCode Easy] (0) | 2022.05.25 |