链表中环的入口结点

2023-05-16

需要学习资料的+微信公众号 学习资源后台找我


本人比较忙 我看到了会在后台帮你,谢谢关注啦


题目描述

一个链表中包含环,请找出该链表的环的入口结点。

思路:设置两个引用 A和B 指向头,然后一个走一步,一个走两步,然后找到相等的结点,然后再另一个从头开始,分别都走一步最后相等的就是环的入口结点

代码如下:

/*
 public class ListNode {
    int val;
    ListNode next = null;

    ListNode(int val) {
        this.val = val;
    }
}
*/
public class Solution {

    public ListNode EntryNodeOfLoop(ListNode pHead)
    {
        if(pHead.next == null)return null;
        ListNode preA = pHead.next;
          ListNode preB = pHead.next.next;
          while(preA != preB){
                preA = preA.next;
                preB = preB.next.next;
          }
          preA = pHead;
          while(preA != preB){
                preA = preA.next;
                preB = preB.next;
          }
        return preA;
    }
}


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

链表中环的入口结点 的相关文章

  • 比较练习

    对于两个32位整数a和b xff0c 请设计一个算法返回a和b中较大的 但是不能用任何比较判断 若两数相同 xff0c 返回任意一个 给定两个整数a 和b xff0c 请返回较大的数 测试样例 xff1a 1 2 返回 xff1a 2 思路
  • 寻找奇数出现

    有一个整型数组A xff0c 其中只有一个数出现了奇数次 xff0c 其他的数都出现了偶数次 xff0c 请打印这个数 要求时间复杂度为O N xff0c 额外空间复杂度为O 1 给定整形数组A 及它的大小n xff0c 请返回题目所求数字
  • 寻找奇数出现II

    给定一个整型数组arr xff0c 其中有两个数出现了奇数次 xff0c 其他的数都出现了偶数次 xff0c 找到这两个数 要求时间复杂度为O N xff0c 额外空间复杂度为O 1 给定一个整形数组arr 及它的大小n xff0c 请返回
  • 用JQuery去实现单个表格中的td数据修改

    需要学习资料的 43 微信公众号 学习资源后台找我 本人比较忙 我看到了会在后台帮你 xff0c 谢谢关注啦 JS代码如下 xff1a document ready function var tds 61 34 td 34 tds clic
  • 二维数组中的查找

    题目描述 在一个二维数组中 xff0c 每一行都按照从左到右递增的顺序排序 xff0c 每一列都按照从上到下递增的顺序排序 请完成一个函数 xff0c 输入这样的一个二维数组和一个整数 xff0c 判断数组中是否含有该整数 思路 xff1a
  • 替换空格

    题目描述 请实现一个函数 xff0c 将一个字符串中的空格替换成 20 例如 xff0c 当字符串为We Are Happy 则经过替换之后的字符串为We 20Are 20Happy 思路 xff1a s表示空白字符也就是空格 xff0c
  • 从尾到头打印链表

    题目描述 输入一个链表 xff0c 从尾到头打印链表每个节点的值 输入描述 输入为链表的表头 输出描述 输出为需要打印的 新链表 的表头 思路 xff1a 创建一个栈stack将链表依次倒入然后再依次倒出就可以了 xff1b 代码如下 xf
  • 用两个栈实现队列

    题目描述 用两个栈来实现一个队列 xff0c 完成队列的Push和Pop操作 队列中的元素为int类型 思路 xff1a 用两个栈stack1和stack2去实现队列 xff0c 先将所有数据倒入stack1中 xff0c 这叫入队 xff
  • 百度2014校园招聘笔试题武汉站三道算法设计题

    百度2014校园招聘笔试题武汉站三道算法设计题 1 给定任意一个整整数 求比这个数大且最小的不重复数 就是相邻两位不同 xff0c 例如1231 如1101就是重复数 解 xff1a 思路 xff1a 每次将给定的值加上1 xff0c 然后
  • 旋转数组的最小数字

    题目描述 把一个数组最开始的若干个元素搬到数组的末尾 xff0c 我们称之为数组的旋转 输入一个递增排序的数组的一个旋转 xff0c 输出旋转数组的最小元素 例如数组 3 4 5 1 2 为 1 2 3 4 5 的一个旋转 xff0c 该数
  • 斐波那契数列

    题目描述 大家都知道斐波那契数列 xff0c 现在要求输入一个整数n xff0c 请你输出斐波那契数列的第n项 n lt 61 39 思路 xff1a 用非递归的方法 xff0c 即遍历的方法去实现斐波拉切数列 代码如下 xff1a pub
  • 跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶 xff0c 也可以跳上2级 求该青蛙跳上一个n级的台阶总共有多少种跳法 思路 xff1a 对于本题 前提只有 一次 1阶或者2阶的跳法 a 如果两种跳法 xff0c 1阶或者2阶 xff0c 那么假定
  • 变态跳台阶

    题目描述 一只青蛙一次可以跳上1级台阶 xff0c 也可以跳上2级 它也可以跳上n级 求该青蛙跳上一个n级的台阶总共有多少种跳法 思路 xff1a 关于本题 xff0c 前提是n个台阶会有一次n阶的跳法 分析如下 f 1 61 1 f 2
  • 矩形覆盖

    题目描述 我们可以用2 1的小矩形横着或者竖着去覆盖更大的矩形 请问用n个2 1的小矩形无重叠地覆盖一个2 n的大矩形 xff0c 总共有多少种方法 xff1f 思路 xff1a 依旧是斐波那契数列 2 n的大矩形 xff0c 和n个2 1
  • 数值的整数次方

    题目描述 给定一个double类型的浮点数base和int类型的整数exponent 求base的exponent次方 思路 xff1a 判断该整数的负数和正数情况 代码如下 xff1a public class Solution publ
  • 调整数组顺序使奇数位于偶数前面

    题目描述 输入一个整数数组 xff0c 实现一个函数来调整该数组中数字的顺序 xff0c 使得所有的奇数位于数组的前半部分 xff0c 所有的偶数位于位于数组的后半部分 xff0c 并保证奇数和奇数 xff0c 偶数和偶数之间的相对位置不变
  • 链表中倒数第k个结点

    题目描述 输入一个链表 xff0c 输出该链表中倒数第k个结点 思路 xff1a 倒数第k个结点 xff0c 则表示是第n k 43 1个结点 代码如下 xff1a public class ListNode int val ListNod

随机推荐

  • 反转链表

    题目描述 输入一个链表 xff0c 反转链表后 xff0c 输出链表的所有元素 思路 xff1a 用一个pre指向前一个结点 xff0c 用 next指向当前结点 next 61 head next head next 61 pre pre
  • 程序员面试题精选100题(46)-对称子字符串的最大长度

    程序员面试题精选100题 46 xff0d 对称子字符串的最大长度 题目 xff1a 输入一个字符串 xff0c 输出该字符串中对称的子字符串的最大长度 比如输入字符串 google xff0c 由于该字符串里最长的对称子字符串是 goog
  • 合并两个排序的链表

    题目描述 输入两个单调递增的链表 xff0c 输出两个链表合成后的链表 xff0c 当然我们需要合成后的链表满足单调不减规则 思路 xff1a 先创建一个头结点 head xff0c head val为 1 然后创建一个指向该头结点的指针p
  • 树的子结构

    题目描述 输入两棵二叉树A xff0c B xff0c 判断B是不是A的子结构 xff08 ps xff1a 我们约定空树不是任意一个树的子结构 xff09 思路 xff1a 可以先判断A和B的父结点是不是一样的 xff0c 如果一样进入递
  • 二叉树的镜像

    题目描述 操作给定的二叉树 xff0c 将其变换为源二叉树的镜像 输入描述 二叉树的镜像定义 xff1a 源二叉树 8 6 10 5 7 9 11 镜像二叉树 8 10 6 11 9 7 5 思路 xff1a 根节点下面的左子树和右子树分别
  • 顺时针打印矩阵

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

    题目描述 定义栈的数据结构 xff0c 请在该类型中实现一个能够得到栈最小元素的min函数 思路 xff1a 用一个栈去存储所有元素 然后一个一个去比较 将小的那个值放到变量min里面 xff1b 代码如下 xff1a import jav
  • 栈的压入、弹出序列

    题目描述 输入两个整数序列 xff0c 第一个序列表示栈的压入顺序 xff0c 请判断第二个序列是否为该栈的弹出顺序 假设压入栈的所有数字均不相等 例如序列1 2 3 4 5是某栈的压入顺序 xff0c 序列4 xff0c 5 3 2 1是
  • 从上往下打印二叉树

    题目描述 从上往下打印出二叉树的每个节点 xff0c 同层节点从左至右打印 思路 xff1a 意思就是按层遍历然后放到一个list集合里面去 xff0c 所以创建一个队列每次把一层的结点放进去 xff0c 然后一个一个判别是否有left结点
  • 二叉搜索树的后序遍历序列

    题目描述 输入一个整数数组 xff0c 判断该数组是不是某二叉搜索树的后序遍历的结果 如果是则输出Yes 否则输出No 假设输入的数组的任意两个数字都互不相同 思路 xff1a 因为是二叉搜索树 xff0c 所以根节点的左子树小于右子树 x
  • 二叉树中和为某一值的路径

    题目描述 输入一颗二叉树和一个整数 xff0c 打印出二叉树中结点值的和为输入整数的所有路径 路径定义为从树的根结点开始往下一直到叶结点所经过的结点形成一条路径 思路 xff1a 用先序遍历递归的思想去实现 xff0c 到最后叶节点如果不能
  • 复杂链表的复制

    题目描述 输入一个复杂链表 xff08 每个节点中有节点值 xff0c 以及两个指针 xff0c 一个指向下一个节点 xff0c 另一个特殊指针指向任意一个节点 xff09 xff0c 返回结果为复制后复杂链表的head xff08 注意
  • ubantu20下python安装和卸载

    查看系统版本 python3 version 卸载ubantu上的python版本 sudo apt get remove python3 卸载python3及其依赖 sudo apt get remove auto remove pyth
  • [转]DBSCAN聚类算法——机器学习(理论+图解+python代码)

    原文链接 xff1a https blog csdn net huacha article details 81094891 一 前言 二 DBSCAN聚类算法 三 参数选择 四 DBSCAN算法迭代可视化展示 五 常用的评估方法 xff1
  • 求1+2+3+...+n

    题目描述 求1 43 2 43 3 43 43 n xff0c 要求不能使用乘除法 for while if else switch case等关键字及条件判断语句 xff08 A B C xff09 思路 xff1a 用递归 xff08
  • 把字符串转换成整数

    题目描述 将一个字符串转换成一个整数 xff0c 要求不能使用字符串转换整数的库函数 思路 xff1a 设置两个标志位 一个tag 为1表示是正数 xff0c 为0表示是负数 xff0c 一个index xff0c 为 43 则index是
  • 数组中重复的数字

    题目描述 在一个长度为n的数组里的所有数字都在0到n 1的范围内 数组中某些数字是重复的 xff0c 但不知道有几个数字是重复的 也不知道每个数字重复几次 请找出数组中任意一个重复的数字 例如 xff0c 如果输入长度为7的数组 2 3 1
  • 表示数值的字符串

    题目描述 请实现一个函数用来判断字符串是否表示数值 xff08 包括整数和小数 xff09 例如 xff0c 字符串 34 43 100 34 34 5e2 34 34 123 34 34 3 1416 34 和 34 1E 16 34 都
  • 字符流中第一个不重复

    题目描述请实现一个函数用来找出字符流中第一个只出现一次的字符 例如 xff0c 当从字符流中只读出前两个字符 34 go 34 时 xff0c 第一个只出现一次的字符是 34 g 34 当从该字符流中读出前六个字符 google 34 时
  • 链表中环的入口结点

    需要学习资料的 43 微信公众号 学习资源后台找我 本人比较忙 我看到了会在后台帮你 xff0c 谢谢关注啦 题目描述 一个链表中包含环 xff0c 请找出该链表的环的入口结点 思路 xff1a 设置两个引用 A和B 指向头 xff0c 然