数据结构:单链表操作之如何判断链表是否带环及相关操作
来源:互联网 发布:财达大智慧软件下载 编辑:程序博客网 时间:2024/05/29 17:49
//判断链表是否有环
int HasCircle(Node* pHead)
{
Node* low=pHead;
Node* fast=pHead;
while(fast != NULL && fast->next != NULL)
{
low=low->next;
fast=fast->next->next;
if(low==fast)
return 1;
}
return 0;
}
时间复杂度:O(1)
//求环中快慢指针相遇节点
Node* HasCircle(Node* pHead)
{
Node* low=pHead;
Node* fast=pHead;
if(pHead==NULL)
return NULL;
while(fast != NULL && fast->next != NULL)
{
low=low->next;
fast=fast->next->next;
if(low==fast)
return low;
}
return NULL;
}
//求环长度
int GetCircleLen(Node* pMeetNode)
{
Node* Node = pMeetNode->next;
int lenght = 1;
while(Node != pMeetNode )
{
lenght++;
Node = Node->next;
}
return lenght;
}
时间复杂度:O(1)
//求环的入口
Node* GetEnterNode(Node* pHead, Node* pMeetNode)
{
Node* start = pHead;
if(pHead == NULL)
return NULL;
while(start != pMeetNode)
{
start = start->next;
pMeetNode = pMeetNode->next;
}
return start;
}
时间复杂度:O(1)
- 数据结构:单链表操作之如何判断链表是否带环及相关操作
- ]数据结构:单链表之判断两个链表是否相交及求交点(带环、不带环)
- 判断链表是否带环
- 判断链表是否带环
- 判断链表是否带环
- 判断链表是否带环
- 判断链表是否带环
- 判断链表是否带环
- 每日一题之判断链表是否带环
- 判断单链表是否带环
- 链表面试题之判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 如何判断两个链表是否相交。(假设链表带环、不带环)
- 单链表是否存在环及相关操作
- 判断带环链表
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- -判断链表是否带环?若带环求环的长度?若带环求环的入口点
- 剑指offer--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- Spring 获取属性值
- WSGI学习记录
- Datacamp-python-Dictionaries
- Android 计算软键盘高度
- J
- 数据结构:单链表操作之如何判断链表是否带环及相关操作
- OSGI学习之路之Require-Bundle与Imported-Package
- 链接备份 CVPR2017 Ubuntu vi caffe-python接口
- 使用 JsonConfig 排除 实体对象 建立在一对多的关联关系上 jsonConfig.setExcludes
- Javaweb开发,实现'购物车'的遍历与操作(页面数据刷新、后台操作反馈)
- python高阶函数
- 数字图像的倒数与梯度
- Python 面试总结
- 出现异常java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.