【LeetCode-面试算法经典-Java实现】【141-Linked List Cycle(单链表中有环)】
2015-08-19 06:36
746 查看
【141-Linked List Cycle(单链表中有环)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Given a linked list, determine if it has a cycle in it.Follow up:
Can you solve it without using extra space?
题目大意
给定一个单链表,判断链表是否有环。解题思路
设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步,如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇代码实现
结点类class ListNode { int val; ListNode next; ListNode(int x) { val = x; next = null; } }
算法实现类
public class Solution { // 设置两个指针(fast, slow),初始值都指向头,slow每次前进一步,fast每次前进二步, // 如果链表存在环,则fast必定先进入环,而slow后进入环,两个指针必定相遇。 // (当然,fast先行头到尾部为NULL,则为无环链表)程序如下: public boolean hasCycle(ListNode head) { ListNode fast = head; ListNode slow = head; while (fast != null && fast.next != null) { fast = fast.next.next; slow = slow.next; if (slow == fast) { break; } } return !(fast == null || fast.next == null); } }
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。特别说明
欢迎转载,转载请注明出处【/article/1324059.html】
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【139-Word Break(单词拆分)】
- 黑马程序员——黑苹果的日记(8)——oc基础之类和对象
- 黑马程序员——黑苹果的日记(11)—— oc加强
- [读书笔记—程序员]《高效程序员的45个习惯:敏捷开发修炼之道》- 苏帕拉马尼亚姆,亨特
- 黑马程序员——黑苹果的日记(6)——Foundation之NSString
- 黑马程序员——Java基础IO流概述、字符流、字节流、流操作规律、File类、Properties类、打印流、序列流
- 剑指offer面试题5-从尾到头打印链表/6-重建二叉树
- 每位新手程序员都应当了解的七条箴言
- 程序员该如何应对老板和客户的施压
- 10个经典的 Java main 方法面试题
- 9秒学院:每个程序员需掌握的20个代码命名小贴士
- 10+年程序员总结的20+条经验教训
- 一个程序员的成长独白
- 华为面试经验
- 每天五个java相关面试题(4)
- 剑指Offer面试题:4.从尾到头打印链表
- Java笔试面试题010
- PHP面试总结
- 程序员开发学习利器篇(下)之文档&资料&软件-获取他们的最好途径
- java程序员常用的工具名称--知道中文意思吗