From 0ada48f859ab59acdbd67e67e887026cacc29e33 Mon Sep 17 00:00:00 2001 From: Stoycho Kyosev Date: Wed, 9 Nov 2022 22:56:24 +0200 Subject: add Seminar06 --- Seminar06/linkedListCycle.cpp | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 Seminar06/linkedListCycle.cpp (limited to 'Seminar06/linkedListCycle.cpp') diff --git a/Seminar06/linkedListCycle.cpp b/Seminar06/linkedListCycle.cpp new file mode 100644 index 0000000..4aa33c6 --- /dev/null +++ b/Seminar06/linkedListCycle.cpp @@ -0,0 +1,33 @@ +#include"../Seminar04/linked-list-utils.h" + +bool hasCycle(LinkedListNode* head) { + LinkedListNode *fast = head; + LinkedListNode *slow = head; + + while (fast && fast->next && slow) { + fast = (fast->next)->next; + slow = slow->next; + + if (fast == slow) + return true; + } + + return false; +} + +int main() { + using Node = LinkedListNode; + + Node* last = new Node(6); + + Node* list = new Node(1, + new Node(2, + new Node(3, + new Node(4, + new Node(5, + last))))); + + last->next = list->next->next; + + hasCycle(list); +} \ No newline at end of file -- cgit v1.3.1-23-gd82d