본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 141. Linked List Cycle

반응형

https://leetcode.com/problems/linked-list-cycle/

 

Linked List Cycle - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

구현 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

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;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.