25 lines
439 B
C++
25 lines
439 B
C++
|
#ifndef S0142_LINKED_LIST_CYCLE_HPP
|
||
|
#define S0142_LINKED_LIST_CYCLE_HPP
|
||
|
|
||
|
#include <unordered_map>
|
||
|
|
||
|
struct ListNode {
|
||
|
int val;
|
||
|
ListNode* next;
|
||
|
ListNode(int x) : val(x), next(nullptr) {}
|
||
|
};
|
||
|
|
||
|
struct IterResult {
|
||
|
ListNode *node;
|
||
|
bool meet;
|
||
|
};
|
||
|
|
||
|
class S0142 {
|
||
|
public:
|
||
|
std::unordered_map<ListNode *, int> footprint;
|
||
|
IterResult iter(ListNode *fast, ListNode* slow, bool startUp);
|
||
|
ListNode *detectCycle(ListNode *head);
|
||
|
};
|
||
|
|
||
|
#endif
|