From 9eed63a37a808c59990feaaaa3e1725dfdd31f3c Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Mon, 30 Oct 2023 22:33:14 +0200 Subject: Add SI consultation --- Additional/merge-sorted.cpp | 51 --------------------------------------------- 1 file changed, 51 deletions(-) delete mode 100644 Additional/merge-sorted.cpp (limited to 'Additional/merge-sorted.cpp') diff --git a/Additional/merge-sorted.cpp b/Additional/merge-sorted.cpp deleted file mode 100644 index b801a72..0000000 --- a/Additional/merge-sorted.cpp +++ /dev/null @@ -1,51 +0,0 @@ -#include -#include"../Seminar04/linked-list-utils.h" - -using ListNode = LinkedListNode; - -ListNode* mergeTwoLists(ListNode* list1, ListNode* list2) { - if(list1 == nullptr) - return list2; - - if(list2 == nullptr) - return list1; - - ListNode* start = nullptr; - ListNode* iter = nullptr; - - while(list1 != nullptr && list2 != nullptr) { - ListNode*& toInsert = (list1->data > list2->data) ? list2 : list1; - - if(iter == nullptr) { - start = toInsert; - iter = toInsert; - } - else { - iter->next = toInsert; - iter = iter->next; - } - - toInsert = toInsert->next; - } - - ListNode* rest = (list1 == nullptr) ? list2 : list1; - - while(rest != nullptr) { - iter->next = rest; - iter = iter->next; - rest = rest->next; - } - - iter->next = nullptr; - return start; -} - -int main() { - ListNode* l1 = new ListNode(1, new ListNode(2, new ListNode(4))); - ListNode* l2 = new ListNode(1, new ListNode(3, new ListNode(4))); - - ListNode* r = mergeTwoLists(l1, l2); - - printLinkedList(r); - freeList(r); -} \ No newline at end of file -- cgit v1.3.1-26-gb76a