博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
判断链表是否有环
阅读量:4505 次
发布时间:2019-06-08

本文共 1333 字,大约阅读时间需要 4 分钟。

原题连接:https://leetcode-cn.com/problems/linked-list-cycle/description/

我最开始的方法是牺牲空间节约时间(然而是两个都为我的智商白白牺牲了);利用vector存储节点地址,然后遍历链表,利用find函数查找有没有相同的地址;提交之后通过是通过了,但是时间和空间都因为我的智商白白牺牲了。不甘心。不看别人的代码;继续想

想到,我干脆释放内存吧,只要释放出错就是有环了。那么怎么捕捉这个错误呢?这时候就要面向谷歌编程了,发现要用到信号,哎,信号我学过啊,一看,和Linux下的差不多啊。心里一阵窃喜,但是随即抽自己两巴掌,MD,不就是上环嘛,还要用信号捕捉?心灰意冷,还是看别人的代码吧,点开一看,细细一想,顿时惊为天人——我看不懂。哎卧槽,脑子不够用了,用笔代替一下吧,经过我的运算,嗯,,,想出这个方法的人甚叼;简单来说就是有两个人,一个跑得快,一个跑得慢,快的那个人的速度是慢的那个人的两倍,他们从同一个地方跑,如果是直线(无环),那他俩是碰不到一起了,如果转圈(有环),那这俩肯定能碰面啊,一碰面不就是有环了嘛,真是贼聪明;得劲!

---------------------------------------------------------------------------------------------------犹豫着要不要贴我的代码--------------------------------------------------------------------------------------------------------------

不上代码的博客都是耍流氓;我就只贴我的吧,大神的代码就不贴了,免得脏了大神的代码;

static int x = []() {

    ios::sync_with_stdio(false);    // cin与stdin禁止同步

    cin.tie(NULL);                   //cin与cout解除绑定

    return 0;

}();

class Solution {

public:

    bool hasCycle(ListNode *head) {

         if (head == NULL || head->next == NULL)

         {

             return false;

         }

         vector<ListNode*>temp;

         ListNode *before = head, *after = head->next;

         temp.push_back(before);

         while (after)

         {

             before = after;

             after = after->next;

             if (temp.end() == find(temp.begin(), temp.end(), before))

             {

                  temp.push_back(before);

                  continue;

             }

             else

             {

                  return true;

             }

         }

         return false;

    }

};

转载于:https://www.cnblogs.com/love-DanDan/p/9158812.html

你可能感兴趣的文章
btcpool之StratumServer
查看>>
TP4056大电流1A使用注意事项
查看>>
thinkphp5.0 + 微信分享
查看>>
Android USB通信-实现lsusb
查看>>
Ubuntu14.04搭建Caffe(仅CPU)
查看>>
Android(java)学习笔记85:使用SQLite的基本流程
查看>>
Java基础知识强化102:线程间共享数据
查看>>
fun() 的 拆分和 for 遍历 的结合---------> 函数容器
查看>>
Asp.Net4.5 mvc4(二) 页面创建与讲解
查看>>
java中字节数组怎么转换为无符号整数
查看>>
C Run-Time Error R6034问题的解决
查看>>
给自己的博客领养一些小宠物--增加趣味性的小插件 ...
查看>>
JS——事件详情(鼠标事件:clientX、clientY的用法)
查看>>
SpringBoot整合JavaWeb
查看>>
talk is cheap, show me the code——dcgan,wgan,wgan-gp的tensorflow实现
查看>>
GNOME 3.7.1 会有什么新功能呢?
查看>>
DataCleaner 3.0.1 发布,数据质量分析管理
查看>>
Pomm 1.1.0 RC2 发布,PHP 的 ORM 框架
查看>>
Parrot and Chirp 3.6.1 发布,广域网文件系统
查看>>
Ubuntu Tweak 0.8.2 发布
查看>>