|
2 | 2 | // Language: Javascript |
3 | 3 | // Problem: https://leetcode.com/problems/linked-list-cycle/ |
4 | 4 | // Author: Chihung Yu |
| 5 | +/** |
| 6 | + * Definition for singly-linked list. |
| 7 | + * function ListNode(val) { |
| 8 | + * this.val = val; |
| 9 | + * this.next = null; |
| 10 | + * } |
| 11 | + */ |
| 12 | + |
| 13 | +/** |
| 14 | + *@param {ListNode} head |
| 15 | + *@return {boolean} |
| 16 | + */ |
| 17 | +// var hasCycle = function(head) { |
| 18 | +// if(head === null || head.next === null){ |
| 19 | +// return false; |
| 20 | +// } |
| 21 | + |
| 22 | +// var faster = head.next; |
| 23 | +// var slower = head; |
| 24 | + |
| 25 | +// while(faster && slower){ |
| 26 | +// if(faster.val === slower.val){ |
| 27 | +// return true; |
| 28 | +// } |
| 29 | +// faster = faster.next; |
| 30 | + |
| 31 | +// if(faster === null){ |
| 32 | +// return false; |
| 33 | +// } else { |
| 34 | +// faster = faster.next; |
| 35 | +// } |
| 36 | + |
| 37 | +// slower = slower.next; |
| 38 | +// } |
| 39 | + |
| 40 | +// return false; |
| 41 | +// }; |
| 42 | + |
5 | 43 | /** |
6 | 44 | * Definition for singly-linked list. |
7 | 45 | * function ListNode(val) { |
|
15 | 53 | *@return {boolean} |
16 | 54 | */ |
17 | 55 | varhasCycle=function(head){ |
18 | | -if(head===null||head.next===null){ |
| 56 | +if(head===null){ |
19 | 57 | returnfalse; |
20 | 58 | } |
| 59 | + |
| 60 | +varnode1=head; |
| 61 | +varnode2=head; |
| 62 | +node2=node2.next; |
21 | 63 |
|
22 | | -varfaster=head.next; |
23 | | -varslower=head; |
24 | | - |
25 | | -while(faster&&slower){ |
26 | | -if(faster.val===slower.val){ |
| 64 | +while(node1!==null&&node2!==null){ |
| 65 | +if(node1.val===node2.val){ |
27 | 66 | returntrue; |
28 | 67 | } |
29 | | -faster=faster.next; |
| 68 | + |
| 69 | +node1=node1.next; |
| 70 | +node2=node2.next; |
30 | 71 |
|
31 | | -if(faster===null){ |
32 | | -returnfalse; |
33 | | -}else{ |
34 | | -faster=faster.next; |
| 72 | +if(node2!==null){ |
| 73 | +node2=node2.next; |
35 | 74 | } |
36 | 75 |
|
37 | | -slower=slower.next; |
| 76 | + |
38 | 77 | } |
39 | 78 |
|
40 | 79 | returnfalse; |
|