diff options
author | Yuqian Yang <crupest@crupest.life> | 2025-02-12 15:55:21 +0800 |
---|---|---|
committer | Yuqian Yang <crupest@crupest.life> | 2025-02-12 16:04:50 +0800 |
commit | 77e6cdc863d2cbd9df578a665804daf28d8593fe (patch) | |
tree | 62c9f3e071d8d1d6fe125fe801907db11784332e /works/solutions/leetcode/cpp/2.cpp | |
parent | 10eb95869601e145b1d8bc909424777c25752d51 (diff) | |
parent | a557fa36a22c5ef4a29da596ee1e3aa10be55984 (diff) | |
download | crupest-77e6cdc863d2cbd9df578a665804daf28d8593fe.tar.gz crupest-77e6cdc863d2cbd9df578a665804daf28d8593fe.tar.bz2 crupest-77e6cdc863d2cbd9df578a665804daf28d8593fe.zip |
import(solutions): IMPORT crupest/solutions COMPLETE.
Diffstat (limited to 'works/solutions/leetcode/cpp/2.cpp')
-rw-r--r-- | works/solutions/leetcode/cpp/2.cpp | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/works/solutions/leetcode/cpp/2.cpp b/works/solutions/leetcode/cpp/2.cpp new file mode 100644 index 0000000..cb954ae --- /dev/null +++ b/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;
+}
|