给一个链表,若其中包含环,请找出该链表的环的入口结点,否则,输出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;
}

剑指Offer 总结的更多相关文章

  1. 剑指Offer面试题:1.实现Singleton模式

    说来惭愧,自己在毕业之前就该好好看看<剑指Offer>这本书的,但是各种原因就是没看,也因此错过了很多机会,后悔莫及.但是后悔是没用的,现在趁还有余力,把这本书好好看一遍,并通过C#通通实 ...

  2. 剑指Offer面试题:14.链表的倒数第k个节点

    PS:这是一道出境率极高的题目,记得去年参加校园招聘时我看到了3次,但是每次写的都不完善. 一.题目:链表的倒数第k个节点 题目:输入一个链表,输出该链表中倒数第k个结点.为了符合大多数人的习惯,本题 ...

  3. 《剑指offer》面试题12:打印1到最大的n位数

    面试题12:打印1到最大的n位数 剑指offer题目12,题目如下 输入数字n,按顺序打印出1到最大的n位十进制数,比如输入3,则打印出1,2,3一直到最大的三位数999 方法一 和面试题11< ...

  4. 《剑指offer》面试题11: 数值的整数次方

    面试题11: 数值的整数次方 剑指offer面试题11,题目如下 实现函数double power(double base,int exponent),求base的exponent次方, 不得使用库 ...

  5. 剑指 Offer 题目汇总索引

    剑指 Offer 总目录:(共50道大题) 1. 赋值运算符函数(或应说复制拷贝函数问题) 2. 实现 Singleton 模式 (C#) 3.二维数组中的查找 4.替换空格              ...

  6. 面试题目——《剑指Offer》

    1.把一个字符串转换成整数——<剑指Offer>P29 2.求链表中的倒数第k个结点——<剑指Offer>P30 3.实现Singleton模式——<剑指Offer> ...

  7. 剑指offer习题集2

    1.把数组排成最小的数 class Solution { public: static bool compare(const string& s1, const string& s2) ...

  8. 剑指offer习题集1

    1.打印二叉树 程序很简单,但是其中犯了一个小错误,死活找不到,写代码要注意啊 这里左右子树,要注意是node->left,结果写成root->left vector<int> ...

  9. 剑指Offer:面试题20——顺时针打印矩阵(java实现)

    题目描述: 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数 字,例如,如果输入如下矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数字1, ...

  10. 牛客网上的剑指offer题目

    题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 题目:请实现一个函数,将一 ...

随机推荐

  1. 团队第六次作业:Beta版本冲刺成绩汇总

    一.作业题目 团队第六次作业:Beta版本冲刺 二.作业评分标准 博客评分规则(总分100)博客要求 1.冲刺博客每篇占20分.(3次) - (1) 各成员该天完成的工作,以及明天的任务安排(表格的形 ...

  2. 让istio中的jaeger跑起来

    现在的水平,仅止于让它跑起来.:) 同样的环境,microk8s+istio. 步骤如下: 一,使用kubectl get pod -n istio-system查看所有istio的POD运行正常. ...

  3. 201871010102-《面向对象程序设计(java)》第6-7周学习总结

    博文正文开头:(2分) 项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/ ...

  4. linux/ubuntu 取色工具gpick

    命令行方式安装: sudo apt-get install gpick 安装完成以后,在终端窗口中输入: gpick 即可以启动工具

  5. NOIP 2008 传球游戏

    洛谷 P1057 传球游戏 洛谷传送门 JDOJ 1536: [NOIP2008]传球游戏 T3 JDOJ传送门 Description ​ 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次, ...

  6. Electron实现第一个应用 "hello world"

    一. 什么是Electron? 它和NW.js的区别是什么? Electron是GitHub开发的桌面应用开发框架,它支持使用HTML.CSS.JavaScript来构建跨平台的桌面应用. Elect ...

  7. MySQL 测试数据批量导入

    使用存储过程 方便工作中测试,一次插入多条数据 DELIMITER $$ CREATE PROCEDURE `XXX`.`XXX_test_batch_insert`() BEGIN DECLARE ...

  8. ABP .net framework版 的发布

    先正常的发布流程走 特别的如下图

  9. nodejs进程管理

    NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用. 我们已经知道了Node ...

  10. html 指定页面字符集的两种方式

      1.html指定页面字符集的两种方式 方式一: <meta charset="utf-8"> 方式二: <meta http-equiv="Cont ...