给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出null。

public class Solution {
public ListNode EntryNodeOfLoop(ListNode pHead) {
if(pHead == null) return null;
ListNode f = pHead;
ListNode s = pHead;
//判断是否有环
boolean hasLoop = false;
while(s != null && f.next != null){
f = f.next.next;
s = s.next;
if(f == s){
hasLoop = true;
break;
}
}
if(!hasLoop) return null;
//求得环的长度
f = f.next.next;
s = s.next;
int length = 1;
while(f != s){
f = f.next.next;
s = s.next;
length++;
}
//找到环的入口
f = s = pHead;
for (int i = 0; i < length; i++)
f = f.next;
while (f != s){
f = f.next;
s = s.next;
}
return f;
}

最新文章

  1. IDEA 中生成 Hibernate 逆向工程实践
  2. ERwin&#174; Data Modeler介绍
  3. JAVA - 多线程 两种方法的比较
  4. 介绍开源的.net通信框架NetworkComms框架 源码分析(九) IPConnection
  5. php读取指定结束指针文件内容
  6. form in drupal
  7. ListView控件的用法
  8. Dapper 基础用法
  9. 祖国版SoloWheel:Airwheel爱尔威火星车 拆箱&amp;上手经验_运动户外_晒物广场_什么值得买
  10. Java AIO 入门实例(转)
  11. jsoup从表单中取数据
  12. 剑指Offer——CVTE校招笔试题+知识点总结(Java岗)
  13. lua语言自学知识点----简单了解
  14. Kafka#4:存储设计 分布式设计 源码分析
  15. SELECT版FTP
  16. 阿里云服务器上安装mysql的详细步骤
  17. Pandas.plot 做图 demo(scatter,bar,pie)
  18. python3.4学习笔记(十一) 列表、数组实例
  19. GridView实现数据编辑和删除
  20. linux系统负载相关的概念和度量

热门文章

  1. &lt;人人都懂设计模式&gt;-中介模式
  2. mysql binlog空间维护
  3. 从架构开始谈dubbo(二)-----zookeeper安装和dubbo文档查阅
  4. Linux使用rz命令上传文件
  5. @Path注解
  6. 学习Spring-Data-Jpa(九)---注解式方法查询之@NamedQuery、@NamedNativeQuery
  7. nlp语义理解的一点儿看法
  8. vue.config.js 配置 scss,less,sass全局配置 vuecli3
  9. Git-push和pull分支
  10. tomcat Invalid character found in the request target. The valid characters are defined in RFC 7230 and RFC 3986