欢迎fork and star:Nowcoder-Repository-github

141. Linked List Cycle

题目

 Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space? 

解答

/**
 * Definition for singly-linked list.
 * struct ListNode {
 *     int val;
 *     ListNode *next;
 *     ListNode(int x) : val(x), next(NULL) {}
 * };
 */
// Linked List Cycle
class Solution{
public:
	bool hasCycle(ListNode *head) {
        if (!head||!head->next)
		{
			return false;
		}
		ListNode* slow=head;
		ListNode* fast = head->next;

		while (fast!=NULL&&fast->next!=NULL)
		{
			if (slow==fast)
			{
				return true;
			}

			slow = slow->next;
			fast = fast->next->next;
			
		}
		return false;
	}
};

题目来源

C/C++基本语法学习 STL C++ primer