用java如何判断一个单链表有循环?

麻烦的一笔 2008-12-19 05:17:37
如题?希望高手解答~
...全文
349 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq675927952 2008-12-22
  • 打赏
  • 举报
回复
学习了!
麻烦的一笔 2008-12-20
  • 打赏
  • 举报
回复
我百度过了都是C实现的,我想要java的
jieao111 2008-12-20
  • 打赏
  • 举报
回复
想要代码,百度一下
麻烦的一笔 2008-12-20
  • 打赏
  • 举报
回复
谁能给段用java实现的代码啊?我急用啊?
  • 打赏
  • 举报
回复
上面说错了!
为了保证相遇,慢指针的步长还是要取2 !
  • 打赏
  • 举报
回复
如果允许修改节点中的值,那么比较容易判断:将读过的节点都置成一个特殊的标记值;

如果不允许修改原来的链表,那么判断快、慢指针是否能够相遇是比较可行的作法:
初始化时二者都指向头节点。快指针每次前进1步;
为了保证二者必定相遇,慢指针前进的步长可以取2,也可以用质数+1

思路已经很清楚了,代码完全可以自己实现~
麻烦的一笔 2008-12-19
  • 打赏
  • 举报
回复
我说的是用java做,能不能给段代码呢?
jieao111 2008-12-19
  • 打赏
  • 举报
回复
......
让快、慢二个指针从链表的头元素出发遍历
无限循环
如果遇到"NULL"指针
返回,该链表以NULL结束,非循环链表
如果快指针追上或超过慢指针
返回,是循环链表
让慢指针前进一个结点
让快指针前进一个结点
......

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧