如何判断单链表是否成环以及查找环的接入点
来源:互联网 发布:昆山入学积分怎么算法 编辑:程序博客网 时间:2024/06/18 15:30
首先定义一个判断工具
typedef unsigned char Boolean;#define TURE 1#define FLASE 0
1、是否带环判断:使用追赶的方法,设定两个指针slow、first,从头指针开始,每次分别前进1步、2步。如存在环,则两者相遇;如不存在环,fast遇到NULL退出。
Boolean FindListTail(PList &head, PList &hNode) {Boolean OK = FLASE; Node *slow, *fast; slow = fast = head; while(fast != NULL && fast -> next != NULL) { fast = fast -> next -> next; slow = slow-> next; if(fast == slow) { hNode = fast; OK = TURE; } } return OK;}
环的接入点:碰撞点p到连接点的距离=头指针到连接点的距离,因此,分别从碰撞点、头指针开始走,相遇的那个点就是连接点。
Node *findLoopPort(PList head) {if(head == NULL || head-> next == NULL) return NULL; Node *slow,*fast; slow = fast = head; while(fast != NULL && fast-> next != NULL) { fast = fast-> next-> next; slow = slow -> next; if(fast == slow) break; } if(fast != slow) return NULL; fast = head; while(fast != slow) { fast = fast -> next; slow = slow -> next; } return fast;}
0 0
- 如何判断单链表是否成环以及查找环的接入点
- 单链表判断是否带环,环的接入点
- 单链表判断是否带环,环的接入点
- 判断单链表是否有环,以及如何找起始点,环的长度
- 判断单链表是否有环以及碰撞点连接点
- 如何判断单链表里是否有环以及查找环的入口
- 判断链表是否有环以及查找环的入口点——淘宝笔试归来
- 判断链表是否有环以及查找环的入口点——淘宝笔试归来
- 判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?
- 如何判断是否有环,如何计算环的长度,如何判断环的入口点
- 判断是否有环和查找入环节点
- 判断单链表中是否存在环及查找环的入口点
- 判断单链表中是否存在环及查找环的入口点
- 判断单链表中是否存在环及查找环的入口点
- 判断单链表中是否存在环及查找环的入口点
- 判断单链表中是否存在环及查找环的入口点
- 8.判断单链表是否有环?如何找到环的“起始”点?如何知道环的长度?
- Windows Mobile如何判断GPRS的接入点
- [LeetCode]223. Rectangle Area
- django 前后台交互实例
- Java字符串是否是回文
- @Injector
- Android多进程介绍
- 如何判断单链表是否成环以及查找环的接入点
- 基于倾斜摄影的三维房管系统
- 【Spring Boot】Spring Boot 属性配置和使用
- 【POJ2411】Mondriaan's Dream-状态压缩DP(插头DP?)
- OSI七层协议
- Xcode 常用代码块
- html中的分区标签
- 快速集成高大上的Banner
- redhat 7 安装图形界面