From 3de7b99fbbfdbb44cfddabf6a697d5c3335bdacb Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Wed, 26 Oct 2022 15:43:06 +0300 Subject: Add Seminar04 --- Seminar04/find-middle.cpp | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 Seminar04/find-middle.cpp (limited to 'Seminar04/find-middle.cpp') diff --git a/Seminar04/find-middle.cpp b/Seminar04/find-middle.cpp new file mode 100644 index 0000000..dc587ba --- /dev/null +++ b/Seminar04/find-middle.cpp @@ -0,0 +1,28 @@ +#include"linked-list-utils.h" + +template +LinkedListNode* findMiddle(LinkedListNode* ll) { + LinkedListNode* fast = ll; + LinkedListNode* slow = ll; + + + while(fast && fast->next) { + fast = fast->next->next; + slow = slow->next; + } + + return slow; +} + +void example() { + LinkedListNode* ll = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4)))); + LinkedListNode* lls = new LinkedListNode(1, new LinkedListNode(2, new LinkedListNode(3, new LinkedListNode(4, new LinkedListNode(5))))); + + LinkedListNode* firstMiddle = findMiddle(ll); + LinkedListNode* secondMiddle = findMiddle(lls); + + std::cout << firstMiddle->data << " " << secondMiddle->data; + + freeList(ll); + freeList(lls); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d