环形链表所引发的一些思考
给你一个链表的头节点 head ,判断链表中是否有环。这是一个很常见的题,可以用快慢指针,一个跳一步另一个跳两步,最终他们一定会在环中相遇。那么如果是一个跳一步另一个跳三步,他们能在环中相遇吗?答案是不一定,如果这个链表环是偶数个,不一定会相遇,如果是奇数则一定会相遇。那么再深入一步,如果一个跳一步另一个跳四步呢?那么一定会相遇的环中节点个数得为多少呢?该如何查找呢?下面给了1-100中间的找法。
#include <stdio.h>
int main()
{
int i = 0;
for (; i < 100; i++)
{
if ((((i - 2) % 3 == 2) && ((i - 1) % 3 == 0))|| (((i - 1) % 3 == 1) && ((i - 2) % 3 == 0)))
printf("%d ", i);
}
return 0;
}
#include <stdio.h>
int main()
{
int i = 0;
for (; i < 100; i++)
{
if ((((i - 2) % 3 == 2) && ((i - 1) % 3 == 0))|| (((i - 1) % 3 == 1) && ((i - 2) % 3 == 0)))
printf("%d ", i);
}
return 0;
}
全部评论
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
06-13 00:54
广西大学 Java 点赞 评论 收藏
分享