每日一题——带环链表
来源:互联网 发布:java的代理模式作用 编辑:程序博客网 时间:2024/06/06 09:38
判断链表是否带环。
若带环求环的长度。
若带环求环的入口处。
并计算上述问题的时间复杂度
求环的入口处(前面几行代码证明带环)至于环的长度,从之前的推论可知,链表起始到环的入口的距离等于相遇点走到环入口的距离,所以环的长度就等于链表起始点到相遇点的距离(代码中的count)。 ListNode *detectCycle(ListNode *head) { // write your code here ListNode* begin = head; ListNode* last = head; if(head == NULL || head->next == NULL) { return NULL; } int count = 0; while(begin->next != NULL && begin->next->next != NULL) { begin = begin->next->next; last = last->next; count++; //记录到相遇点的距离,即环长 if(begin == last) //相遇点 { ListNode* newBegin = head; ListNode* newLast = begin; while(newBegin != newLast) { newBegin = newBegin->next; newLast = newLast->next; } return newBegin; } } return NULL; }
时间复杂度:
1>:O(N)
2>:O(N)
3>:O(N^2)
阅读全文
0 0
- 每日一题——带环链表
- 每日一题之判断链表是否带环
- 每日一刷——1.判断两个链表是否相交,若相交求交点(链表不带环&带环)2.fork()问题
- 每日一题(16) - 如何得到两个带环且相交的单链表的交点
- 每日一题——链表合并
- 每日一题——链表相交问题
- 带环的链表
- 带环的链表
- 带环的链表
- 带环的链表
- 带环链表
- 带环链表
- 题目:带环链表
- 带环的链表
- 带环链表
- LinCode_102_带环链表
- 带环链表
- 判断带环链表
- 链表结构简单实现
- Activity的生命周期
- 合并两个排序的链表
- 一对多、表外键处理时Action中的No result defined for action cn.myssh.contact.action.ContactAction and re
- 关于caffe的笔记
- 每日一题——带环链表
- 比特币之我见——新型传销工具
- 关于九度oj中1488题目错误改正
- Akka并发编程——第八节:Actor模型(七)
- 4-14z-index从父现象.html
- C++程序员学Java系列之十九:接口
- Java环境搭建
- Java中利用循环语句输出倒正三角形、菱形
- SpringMVC+Spring+MyBatis+Maven启动报错:ContextLoaderListener java.lang.ClassNotFoundException