leetcode-环形链表-17

题目要求
  给定一个链表,判断链表中是否有环。如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 如果链表中存在环,则返回 true 。 否则,返回 false 。
思路
  设置快慢指针,快指针一次走两步,慢指针一次走一步,如果有环,快慢指针同时进环后,快指针会追上慢指针,他们的地址会相等。
图解
在这里插入图片描述
代码实现

bool hasCycle(struct ListNode *head) {
	struct ListNode *fast = head, *slow = head;
	while (fast != NULL && fast->next)
	{
		fast = fast->next->next;
		slow = slow->next;
		if (fast == slow)
		{
			return true;
		}
	}
	return false;
}

猜你喜欢

转载自blog.csdn.net/weixin_43580319/article/details/113508471
今日推荐