1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- 'use strict'
- /**
- * Definition for singly-linked list.
- * function ListNode(val) {
- * this.val = val;
- * this.next = null;
- * }
- */
- function ListNode(val) {
- this.val = val;
- this.next = null;
- }
- /**
- * @param {ListNode} head
- * @return {boolean}
- */
- var hasCycle = function (head) {
- if (head === null || head.next === null) return false
- let set = new Set()
- let curr = head
- set.add(curr)
- curr = curr.next
- for (;;) {
- if (curr === null) return false
- if (set.has(curr)) return true
- set.add(curr)
- curr = curr.next
- }
- }
- function __main__() {
- let n13 = new ListNode(3)
- let n12 = new ListNode(3)
- let n1 = new ListNode(1)
- n1.next = n12
- n12.next = n13
- let n23 = new ListNode(3)
- let n22 = new ListNode(3)
- let n2 = new ListNode(1)
- n23.next = n2
- n2.next = n22
- n22.next = n23
- console.log(hasCycle(n1))
- console.log(hasCycle(n2))
- }
- __main__()
|