반응형
https://leetcode.com/problems/linked-list-cycle/
구현 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
linked list가 들어옵니다.
📔 풀이과정
1. listnode의 값을 index처럼 생각해줍니다.
2. cur로 head를 순회하면서 현재 val을 나올 수 없는 -0x3f3f3f3f(약 -20억) 수로 바꿔줍니다.
3. cycle이 있다면 해당값을 발견할 수 있으므로 그 경우에는 true를 반환합니다. 없다면 false를 반환합니다.
📕 Code
📔 C++
/**
* Definition for singly-linked list.
* struct ListNode {
* int val;
* ListNode *next;
* ListNode(int x) : val(x), next(NULL) {}
* };
*/
class Solution {
public:
bool hasCycle(ListNode *head) {
ListNode* cur = head;
while(cur != NULL) {
if(cur->val == -0x3f3f3f3f)
return true;
cur->val = -0x3f3f3f3f;
cur = cur->next;
}
return false;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > 자료구조' 카테고리의 다른 글
(C++) - LeetCode (easy) 145. Binary Tree Postorder Traversal (0) | 2022.12.06 |
---|---|
(C++) - LeetCode (easy) 144. Binary Tree Preorder Traversal (0) | 2022.12.05 |
(C++) - LeetCode (easy) 136. Single Number (0) | 2022.12.01 |
(C++) - LeetCode (easy) 1. Two Sum (0) | 2022.11.26 |
(C++) - LeetCode (easy) 112. Path Sum (0) | 2022.11.25 |