#include <iostream>
#include "unordered_set"
#include "basicActions.h"
using namespace std;
void createLoop(Node *head)
{
Node *p = head;
while (p->next != nullptr)
{
p = p->next;
}
p->next = head;
return;
}
bool detectLoop(Node *head)
{
unordered_set<Node *> s;
Node *p = head;
while (p != nullptr)
{
if (s.find(p) != s.end())
return true;
s.insert(p);
p = p->next;
}
return false;
}
int main()
{
Node *head = nullptr;
insertAtEnd(head, 1);
insertAtEnd(head, 2);
insertAtEnd(head, 3);
insertAtEnd(head, 4);
insertAtEnd(head, 5);
createLoop(head);
detectLoop(head) ? cout << "Loop Detected.." << '\n' : cout << "No Loop Detected.." << '\n';
}