Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
67 lines (55 loc) · 1.94 KB

File metadata and controls

67 lines (55 loc) · 1.94 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
//
// Solution141.hpp
// Algorithm
//
// Created by Pancf on 2019/12/21.
// Copyright © 2019 Pancf. All rights reserved.
//
#ifndef Solution141_hpp
#define Solution141_hpp
#include <stdio.h>
class Solution141 {
/**
Given a linked list, determine if it has a cycle in it.
To represent a cycle in the given linked list, we use an integer pos which represents the position (0-indexed) in the linked list where tail connects to. If pos is -1, then there is no cycle in the linked list.
Example 1:
Input: head = [3,2,0,-4], pos = 1
Output: true
Explanation: There is a cycle in the linked list, where tail connects to the second node.
Example 2:
Input: head = [1,2], pos = 0
Output: true
Explanation: There is a cycle in the linked list, where tail connects to the first node.
Example 3:
Input: head = [1], pos = -1
Output: false
Explanation: There is no cycle in the linked list.
Follow up:
Can you solve it using O(1) (i.e. constant) memory?
================================================================================================
Accept details:
Runtime: 8 ms, faster than 97.17% of C++ online submissions for Linked List Cycle.
Memory Usage: 9.6 MB, less than 100.00% of C++ online submissions for Linked List Cycle.
思路:用快慢指针即可,慢指针每个loop向前走一步,快指针向前走两步,若有环则快指针一定会追上慢指针,若无环则快指针一定先到达链表尾部
*/
public:
struct ListNode {
int val;
ListNode *next;
ListNode(int x) : val(x), next(NULL) {}
};
bool hasCycle(ListNode *head);
static void test() {
ListNode node1{1};
ListNode node2{2};
ListNode node3{3};
ListNode node4{4};
node1.next = &node2;
node2.next = &node3;
node3.next = &node4;
node4.next = &node2;
Solution141 s = Solution141();
printf("%d", s.hasCycle(&node1));
}
};
#endif /* Solution141_hpp */
Morty Proxy This is a proxified and sanitized view of the page, visit original site.