aboutsummaryrefslogtreecommitdiff
path: root/merge_lists.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'merge_lists.cpp')
-rw-r--r--merge_lists.cpp29
1 files changed, 29 insertions, 0 deletions
diff --git a/merge_lists.cpp b/merge_lists.cpp
new file mode 100644
index 0000000..b57bf53
--- /dev/null
+++ b/merge_lists.cpp
@@ -0,0 +1,29 @@
+#include <bits/stdc++.h>
+#include <cstddef>
+
+struct ListNode {
+ int val;
+ ListNode *next;
+ ListNode() : val(0), next(nullptr) {}
+ ListNode(int x) : val(x), next(nullptr) {}
+ ListNode(int x, ListNode *next) : val(x), next(next) {}
+};
+
+class Solution {
+public:
+ ListNode *mergeTwoLists(ListNode *list1, ListNode *list2) {
+ if (list1 == NULL)
+ return list2;
+ if (list2 == NULL)
+ return list1;
+ if (list1->val <= list2->val) {
+ list1->next = mergeTwoLists(list1->next, list2);
+ return list1;
+ } else {
+ list2->next = mergeTwoLists(list1, list2->next);
+ return list2;
+ }
+ }
+};
+
+int main() {}