Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // 1 2 3 4 5
- // ^ |
- // |___|
- class Node {
- constructor(value, next = null) {
- this.value = value;
- this.next = next;
- }
- }
- function hasCycle(node) {
- let visited = new Set();
- for(let curr = node; curr != null; curr = curr.next) {
- if(visited.has(curr)) return true;
- visited.add(curr);
- }
- return false;
- }
- function hasCycleFloyd(node) {
- if(node === null) return false;
- let slow = node;
- let fast = node.next;
- while(fast !== null && fast.next !== null) {
- if(fast === slow) return true;
- slow = slow.next;
- fast = fast.next.next;
- }
- return false;
- }
- let node1 = new Node(1);
- let node2 = new Node(2);
- let node3 = new Node(3);
- let node4 = new Node(4);
- let node5 = new Node(5);
- node1.next = node2;
- node2.next = node3;
- node3.next = node4;
- node4.next = node5;
- node5.next = node3;
- console.log(`==> ${hasCycleFloyd(node1)}`)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement