链表中环的入口结点
来源:互联网 发布:游戏文案策划 知乎 编辑:程序博客网 时间:2024/05/29 08:06
题目描述:
一个链表中包含环,请找出该链表的环的入口结点。
分析:
第一步,找环中相汇点。分别用p1,p2指向链表头部,p1每次走一步,p2每次走二步,直到p1==p2找到在环中的相汇点。
第二步,找环的入口。接上步,当p1==p2时,p2所经过节点数为2x,p1所经过节点数为x,设环中有n个节点,p2比p1多走一圈有2x=n+x; n=x;可以看出p1实际走了一个环的步数,再让p2指向链表头部,p1位置不变,p1,p2每次走一步直到p1==p2; 此时p1指向环的入口。
参考代码:
/* public class ListNode { int val; ListNode next = null; ListNode(int val) { this.val = val; }}*/public class Solution { public ListNode EntryNodeOfLoop(ListNode pHead) { if(pHead == null || pHead.next == null){ return null; } ListNode p1 = pHead; ListNode p2 = pHead; while(true){ p1 = p1.next; p2 = p2.next.next; if(p1 == p2){ break; } } p2 = pHead; while(p1 != p2){ p1 = p1.next; p2 = p2.next; } return p1; }}
阅读全文
1 0
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- 链表中环的入口结点
- java加密算法入门(一)-算法概念及单向加密
- 雅连的故事
- 欢迎使用CSDN-markdown编辑器
- ReactNative Component 生命周期
- 基于空间相关的图像模板匹配及MATLAB实现
- 链表中环的入口结点
- 纯手写mybatis mapper.xml 文件
- JSP几种页面间传递参数实现的方法
- linux 排序计数
- dubbo异步调用
- C
- C++之了解隐式接口和编译器多态(41)---《Effective C++》
- 【怎样写代码】对象克隆 -- 原型模式(三):原型模式
- 廖雪峰《python3 基础教程》读书笔记——第七章 模块