1.//环形链表
//输入:head = [3,2,0,-4], pos = 1
//输出:true
//解释:链表中有一个环,其尾部连接到第二个节点。
//输入:head = [1, 2], pos = 0
//输出:true
//解释:链表中有一个环,其尾部连接到第一个节点。
//输入:head = [1], pos = -1
//输出:false
//解释:链表中没有环。
//判断循环的时候地址是否相同
2.我们使用快慢指针,慢指针fast,快指针dev,fast走一步,dev走二步。当循环的时候,慢指针fast等于dev地址,就说明有环,不相等则没有环。
// Definition for singly-linked list.struct ListNode {int val;struct ListNode *next;};struct ListNode* detectCycle(struct ListNode* head) {struct ListNode* begin = head;struct ListNode* end = head;while (end && end->next){//用快慢指针fast走一步(n),dev走二步(n+1),物理的追及问题begin = begin->next;end = end->next->next;if (end == begin){return 1;}}return -1;
}
int main()
{return 0;
}