判断链表是否存在环形链表
来源:互联网 发布:软件测试工程师难学不 编辑:程序博客网 时间:2024/05/22 15:40
如何解决链表中是否存在链表的问题:
设置两个指针p1, p2,每次p1向前走一步,p2向前走两步,直到p2碰到NULL或两个指针相等时结束循环。
如果两个指针相等,则说明该链表存在环。
程序实现:
//判断链表是否存在环bool isLoop(ListNode *head) {ListNode *p1, *p2;p1 = p2 = head->next;if(head == NULL || head->next == NULL) {return false;}do{p1 = p1->next;//p1走一步 p2 = p2->next->next;//p2走两步 }while(p2 && p2->next && p1 != p2);if(p1 == p2) {return true;} else {return false;}}
测试用例:
int main(){int pos, data;ListNode *head, *item, *p, *q;head = create_list();cout << endl;print_list(head);p = head->next;if(p != NULL) {q = p->next;}while(q) {p = p->next;q = q->next;}p->next = head->next;bool flag = isLoop(head);cout << "list is loop ? " << flag << endl;}
0 0
- 判断链表是否存在环形链表
- 面试题四 C/C++面试秘笈 之判断链表是否存在环形链表问题-程序员面试题
- 判断环形链表
- 判断链表是否存在环
- 判断一个链表是否存在环
- 判断链表是否存在环
- 判断链表是否存在环
- 判断链表是否存在环
- 判断链表是否存在环路
- 单向链表判断是否存在循环
- 判断表是否存在
- 判断表是否存在
- 判断表是否存在
- 判断表是否存在
- 【数据结构】单链表—判断一个链表是否形成了环形结构 — 快慢指针
- 剑指-判断一个单向链表是否形成了环形结构
- 【java基础 13】两种方法判断hashmap中是否形成环形链表
- 【题目13】判断一个链表是否存在环
- Apache 服务器安装与配置要点
- 理解CSS的盒子模型和样式继承
- Codeforces Round #320 (Div. 2) 579A Raising Bacteria(脑洞)
- 对DevExpress GridControl控件,实现通过checkbox选中时整行高亮
- 回收键盘相关方法
- 判断链表是否存在环形链表
- 窗口子控件
- 使用NetBeans实现表格的增删改
- 最少拦截系统 1257 (动态规划)
- 关于创建子包(package)的问题
- 关于JDK的终极环境变量的配置
- ScrollView内展示ListView显示不完全(只显示一个Item)
- 藏龙卧虎
- lintcode-图中两个点之间的路线-176