C++LeetCode 구현(141.단일 체인 테이블 의 링)

[LeetCode]141.Linked List Cycle 싱글 체인 시트 의 링
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?
이 문 제 는 빠 르 고 느 린 지침 의 전형 적 인 응용 이다.두 개의 지침 만 설치 해 야 한다.한 걸음 씩 걷 는 느 린 지침 과 두 걸음 씩 걷 는 빠 른 지침 이 있다.만약 에 체인 시계 에 고리 가 있다 면 두 지침 은 결국 만 날 것 이다.정말 너무 교묘 해서 나 같 으 면 생각 이 안 날 거 야.코드 는 다음 과 같 습 니 다:
C++해법:

class Solution {
public:
    bool hasCycle(ListNode *head) {
        ListNode *slow = head, *fast = head;
        while (fast && fast->next) {
            slow = slow->next;
            fast = fast->next->next;
            if (slow == fast) return true;
        }
        return false;
    }
};
자바 해법:

public class Solution {
    public boolean hasCycle(ListNode head) {
        ListNode slow = head, fast = head;
        while (fast != null && fast.next != null) {
            slow = slow.next;
            fast = fast.next.next;
            if (slow == fast) return true;
        }
        return false;
    }
}
Github 동기 화 주소:
https://github.com/grandyang/leetcode/issues/141
유사 한 제목:
Linked List Cycle II
Happy Number
참고 자료:
https://leetcode.com/problems/linked-list-cycle/
https://leetcode.com/problems/linked-list-cycle/discuss/44489/O(1)-Space-Solution
C++구현 LeetCode(141.단일 링크 의 링)에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 관련 C++구현 단일 링크 의 링 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!

좋은 웹페이지 즐겨찾기