aboutsummaryrefslogtreecommitdiff
path: root/store/works/solutions/leetcode/cpp/2.cpp
diff options
context:
space:
mode:
authorYuqian Yang <crupest@crupest.life>2025-02-28 23:13:39 +0800
committerYuqian Yang <crupest@crupest.life>2025-02-28 23:13:39 +0800
commit99e2e923d0c77b02f3fb4ff648ea916954868606 (patch)
treeec8e03f6f2cd1ce43990fb4fe6cd631967d0237e /store/works/solutions/leetcode/cpp/2.cpp
parent1cee979f5d36b311a03cc7397a036ba11caf3d42 (diff)
downloadcrupest-99e2e923d0c77b02f3fb4ff648ea916954868606.tar.gz
crupest-99e2e923d0c77b02f3fb4ff648ea916954868606.tar.bz2
crupest-99e2e923d0c77b02f3fb4ff648ea916954868606.zip
chore(store): move everything to store.
Diffstat (limited to 'store/works/solutions/leetcode/cpp/2.cpp')
-rw-r--r--store/works/solutions/leetcode/cpp/2.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/store/works/solutions/leetcode/cpp/2.cpp b/store/works/solutions/leetcode/cpp/2.cpp
new file mode 100644
index 0000000..cb954ae
--- /dev/null
+++ b/store/works/solutions/leetcode/cpp/2.cpp
@@ -0,0 +1,75 @@
+struct ListNode
+{
+ int val;
+ ListNode *next;
+ ListNode(int x) : val(x), next(NULL) {}
+};
+
+class Solution
+{
+public:
+ ListNode *addTwoNumbers(ListNode *l1, ListNode *l2)
+ {
+ ListNode *result;
+ ListNode *tail;
+ int carry = 0;
+
+ {
+ int sum = l1->val + l2->val;
+ if (sum > 9)
+ {
+ carry = 1;
+ sum -= 10;
+ }
+
+ result = new ListNode(sum);
+ tail = result;
+
+ l1 = l1->next;
+ l2 = l2->next;
+ }
+
+ while (l1 || l2)
+ {
+ int sum = (l1 ? l1->val : 0) + (l2 ? l2->val : 0) + carry;
+ if (sum > 9)
+ {
+ carry = 1;
+ sum -= 10;
+ }
+ else
+ {
+ carry = 0;
+ }
+ tail->next = new ListNode(sum);
+ tail = tail->next;
+
+ if (l1)
+ l1 = l1->next;
+ if (l2)
+ l2 = l2->next;
+ }
+
+ if (carry)
+ {
+ tail->next = new ListNode(1);
+ }
+
+ return result;
+ }
+};
+
+int main()
+{
+ ListNode *l1 = new ListNode(2);
+ l1->next = new ListNode(4);
+ l1->next = new ListNode(3);
+
+ ListNode *l2 = new ListNode(5);
+ l2->next = new ListNode(6);
+ l2->next = new ListNode(4);
+
+ ListNode *result = Solution{}.addTwoNumbers(l1, l2);
+
+ return 0;
+}