/**
* 用顺序表实现 王道P41 T21
*
* point:
* 快慢指针的思想
*
* ①算法思想:
* 设置一个快指针,一个慢指针,
* 如果没有环,那么快指针一定会先走到 NULL(没必要判断慢指针了),直接 return false,
* 如果有环的话,两个指针一定会相遇。
*
* ②数据结构:
* typedef struct LNode{
int data;
struct LNode *next;
}LNode,*LinkList;
*
* ③算法设计
*/
#include <stdio.h>
#include <iostream>
typedef struct LNode{
int data;
struct LNode* next;
}LNode,*LinkList;
bool IsCycle(LinkList L){
LinkList fast = L;
LinkList slow = L;
while(fast && fast -> next){
fast = fast -> next -> next;
slow = slow -> next;
if(slow == fast)
return true;
}
//当 fast == NULL 或者 fast -> next == NULL 时,说明肯定没有环
return false;
}
王道书P41 T21(单链表实现)
于 2022-07-06 11:59:53 首次发布