返回环路的开头结点
来源:互联网 发布:怎样申请淘宝开网店 编辑:程序博客网 时间:2024/05/16 09:45
给定一个有环链表,实现一个算法返回环路的开头结点。
#include<iostream>
using namespace std;
typedef struct node
{
int data;
struct node* next;
}* LinkedListNode;
LinkedListNode FindBeginning(LinkedListNode head)
{
LinkedListNode slow = head;
LinkedListNode fast = head;
//找出碰撞处,将处于链表LOOP_SIZE-k步的位置
while (fast != NULL && fast->next != NULL)
{
slow = slow->next;
fast = fast->next->next;
if (slow == fast)//碰撞
{
break;
}
}
//错误检查,没有碰撞处,也即没有环路
if (fast == NULL || fast->next == NULL)
{
return NULL;
}
//将slow指向首部,fast指向碰撞处,两者距离环路起始处k步,
//若两者以相同速度前进,则必定会在环路起始位置碰撞在一起
slow = head;
while (slow != fast)
{
slow = slow->next;
fast = fast->next;
}
//至此两者均指向环路起始处
return fast;
}
0 0
- 返回环路的开头结点
- 寻找有环链表的环路开头结点
- 【Java】给定一个有环链表,实现算法返回环路的开头结点
- 给定一个有环链表,实现一个算法返回环路的开头结点
- 9.2链表(六)——给定一个有环链表,实现一个算法返回环路的开头结点
- 程序员面试金典: 9.2链表 2.6给定有环链表,实现算法返回环路的开头节点
- CCI 2.6 寻找有环链表环路的开头节点
- 《CTCI》2.6 寻找有环链表的开头结点
- 程序员面试经典--链表环路检测与入口结点返回
- 单链表判断环路及环路的入口
- 路由环路的产生
- 地线环路的影响
- 图的环路问题
- 锁相环的环路带宽
- 数据结构 - 返回单链表的中间结点
- 消除路由环路的技术
- 以太网环路水晶头的制作方法
- 以太网环路水晶头的制作方法
- UIP协议栈四
- 费用流 poj3422 Kaka's Matrix Travels
- Android应用程序结构
- java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setCharacterStream(ILjava/io/Reader;
- C++代码之 常用算法汇总
- 返回环路的开头结点
- 2015 7 6 Java核心技术卷一 第11章 异常 断言 日志和调试
- javascript 正则表达式补充
- POJ-2799(找到一组IP的最小网络)
- Unity Tools
- linux中的分段
- 十六进制颜色转换RGB对照表
- SQLite数据库存储
- dhtmlx中增加一列(将类似按钮、下拉列表、输入框显示在一行上)