diff options
Diffstat (limited to 'merge_lists.cpp')
-rw-r--r-- | merge_lists.cpp | 29 |
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() {} |