求单链表是否带环,环的长度,环入口点
来源:互联网 发布:电子贺卡软件 编辑:程序博客网 时间:2024/06/06 03:39
1.分析单链表是否带环
2.带环链表环的长度分析
3.求环入口点分析
具体代码如下:
1.hpp文件#pragma once#includetypedef struct ListNode{int value;ListNode* next;}node,*pnode;pnode createNode(int data){pnode temp = new node();temp->value = data;temp->next = NULL;return temp;}void InitList(pnode* pHead){*pHead = NULL;}void pushNode(pnode* pHead, int data){if (*pHead == NULL){*pHead = createNode(data);}else{pnode tmp = *pHead;while (NULL != tmp->next){tmp = tmp->next;}tmp->next = createNode(data);}}void Print(pnode pHead){pnode tmp = pHead;while (tmp){printf("%d->",tmp->value);tmp = tmp->next;}printf("NULL");}void MakeLoopList(pnode* pHead){pnode tem = *pHead;while (tem->next){tem = tem->next;}tem->next = *pHead;}bool isHaveLoop(pnode pHead){if (NULL == pHead){return false;}pnode first = pHead;pnode second = pHead;while (NULL != second && NULL != second->next){first = first->next;second = second->next->next;if (first == second){return true;}}return false;}int LoopLength(pnode pHead){int count = 0;if (NULL == pHead){return 0;}pnode first = pHead;pnode second = pHead;while (NULL != first && NULL != first->next){first = first->next;second = second->next->next;if (first == second){count++;first = first->next;while (first != second){first = first->next;count++;}return count;}}return 0;}pnode FindLoopNode(pnode pHead){if (NULL == pHead){return pHead;}pnode f = pHead;pnode s = pHead;while (NULL != f){f = f->next;s = s->next->next;if (f == s){break;}}pnode p = pHead;while (f != p){f = f->next;p = p->next;}return p;}主函数#include "1.hpp"int main(){pnode n;InitList(&n);pushNode(&n, 1);pushNode(&n, 2);pushNode(&n, 3);pushNode(&n, 4);pushNode(&n, 5);pushNode(&n, 6);Print(n);printf("\n");MakeLoopList(&n);printf("%d\n", isHaveLoop(n));printf("%d\n", LoopLength(n));printf("%d\n", FindLoopNode(n)->value);return 0;}
阅读全文
0 0
- 求单链表是否带环,环的长度,环入口点
- 链表 是否带环,环的长度以及入口点
- 判断单链表是否带环,若带环,求环的长度,求环的入口点
- 判断单链表是否带环? 若带环, 求环的长度? 求环的入口点?
- 判断单链表是否带环? 若带环, 求环的长度? 求环的入口点?
- 判断链表是否带环?若带环求环的长度?求环的入口点?
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?
- 判断单链表是否带环?若带环,求环的长度?求环的入口点?
- 判断单链表是否带环?若带环,求环的长度,求环的入口点
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- -判断链表是否带环?若带环求环的长度?若带环求环的入口点
- 剑指offer--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 链表--判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- 判断链表是否带环,若带环求环的长度,若带环求环的入口点
- 判断链表是否带环?若带环求环的长度?若带环求环的入口点?
- As3基础部分4
- Linux基本操作指南
- 语义分割大牛的博客
- 分类 简述
- retrofit下载进度
- 求单链表是否带环,环的长度,环入口点
- Android Bitmap回收异常:Canvas: trying to use a recycled bitmap android.graphics.Bitmap解决
- C/C++ | 18-4 快排 Qsort
- 编程题——整数中1出现的次数
- python爬取百度百科
- 基于深度学习的密集人群密度检测
- 管道pipe
- windows平台模拟测试FATFS
- 分享一个有意思的小程序!!