Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. // 1 2 3 4 5
  2. // ^ |
  3. // |___|
  4.  
  5. class Node {
  6. constructor(value, next = null) {
  7. this.value = value;
  8. this.next = next;
  9. }
  10. }
  11.  
  12. function hasCycle(node) {
  13. let visited = new Set();
  14. for(let curr = node; curr != null; curr = curr.next) {
  15. if(visited.has(curr)) return true;
  16. visited.add(curr);
  17. }
  18.  
  19. return false;
  20. }
  21.  
  22. function hasCycleFloyd(node) {
  23. if(node === null) return false;
  24. let slow = node;
  25. let fast = node.next;
  26.  
  27. while(fast !== null && fast.next !== null) {
  28. if(fast === slow) return true;
  29. slow = slow.next;
  30. fast = fast.next.next;
  31. }
  32.  
  33. return false;
  34. }
  35.  
  36.  
  37. let node1 = new Node(1);
  38. let node2 = new Node(2);
  39. let node3 = new Node(3);
  40. let node4 = new Node(4);
  41. let node5 = new Node(5);
  42.  
  43. node1.next = node2;
  44. node2.next = node3;
  45. node3.next = node4;
  46. node4.next = node5;
  47. node5.next = node3;
  48.  
  49. console.log(`==> ${hasCycleFloyd(node1)}`)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement