⭐️ 往期相关文章
💫链接1:链表分割
💫链接2:链表中倒数第k个结点(快慢指针问题)
💫链接3:leetcode 876.链表的中间结点(快慢指针问题)
💫链接4:leetcode 206.反转链表
💫链接5:leetcode 203.移除链表元素
💫链接6:合并两个有序链表
💫链接7:链表相交
⭐️ 题目描述
🌟 leetcode链接:环形链表
1️⃣ 代码和思路:
思路:快慢指针问题。慢指针走一步 快指针走两步,如果有环 则快指针一定可以追上慢指针。
/*思路:快慢指针问题。慢指针走一步 快指针走两步,如果有环 则快指针一定可以追上慢指针*/
bool hasCycle(struct ListNode *head) {struct ListNode * slow = head;struct ListNode * fast = head;// 考虑没有环的情况下,奇数和偶数个链表 fast 结束条件不同while (fast && fast->next) {fast = fast->next->next;slow = slow->next;if (fast == slow) {return true;}}return false;
}