Leetcode 141.环形链表
生活随笔
收集整理的这篇文章主要介绍了
Leetcode 141.环形链表
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
难度:简单
频率:155
题目:
给你一个链表的头节点head,判断链表中是否有环。
如果链表中有某个节点,可以通过连续跟踪next指针再次到达,则链表中存在环。为了表示给定链表中的环,评测系统内部使用整数pos来表示链表尾连接到链表中的位置(索引从0开始)。如果pos是-1,则在该聊表中没有环。
注意:pos不作为参数进行传递,仅仅是为了标识链表的实际情况。
如果链表中存在环,则返回true,否则,返回false。
解题方法:快慢指针
解题思路:
1.同时指向head
2.进入循环while判断两指针是否同时为空
3.循环里 快指针走两步,.next.next;慢指针走一步 .next;
如果在循环里 有两指针相遇,则说明有环。
4.跳出循环走到最后则说明没环。
主要注意的点:
- 判断环形 只有一个条件,就是 快慢指针相遇。
- 肯定不会有环形的 : 1.空链表 。2.单节点。
- while里面fast != null && fast.next != null 不能换成 fast.next != null && fast!= null。会报空指针异常。 原因是 当fast==null时,fast.next不成立,报空指针异常。
总结
以上是生活随笔为你收集整理的Leetcode 141.环形链表的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Collection集合--ArrayL
- 下一篇: java从静态代理到动态代理的理解