leetcode 141:Linked List Cycle 问题与解答
来源:互联网 发布:淡漠夕阳引擎源码 编辑:程序博客网 时间:2024/06/07 18:33
问题重现:
- 给定一个链表,判断其中是否存在一个循环(尽量不使用额外空间)
分析思路:
1、暴力解法,即从第二个节点开始,每一个新的节点都与其前面的全部节点进行比较,判断是否有循环,时间复杂度为O(N^2),空间复杂度为O(N)
2、采用快慢指针的思想,即用两个指针分别遍历整个链表,慢指针每次前进1个节点,快指针每次前进2个节点,若两指针相遇,那么判断存在循环;否则不存在循环。时间复杂度为O(N),空间复杂度为O(1)
问题解决:
/** * Definition for singly-linked list. * struct ListNode { * int val; * struct ListNode *next; * }; */bool hasCycle(struct ListNode *head) { struct ListNode *fast = head, *slow = head; while(fast != NULL && fast->next != NULL) { fast = fast->next->next; slow = slow->next; if(fast == slow) //if they equal, it has a cycle return true; } return false; //while a pointer is NULL, it doesn't have a cycle}
0 0
- leetcode 141:Linked List Cycle 问题与解答
- LeetCode 141:Linked List Cycle 官方解答翻译
- LeetCode Linked List Cycle 解答程序
- [LeetCode] Linked List Cycle 与 Linked List Cycle II
- LeetCode(141)Linked List Cycle
- LeetCode 141 Linked List Cycle
- LeetCode 141 Linked List Cycle
- LeetCode: Linked List Cycle [141]
- [leetcode 141] Linked List Cycle
- [leetcode]141 Linked List Cycle
- LeetCode 141 Linked List Cycle
- leetcode || 141、Linked List Cycle
- Leetcode[141]-Linked List Cycle
- leetcode-141-Linked List Cycle
- [Leetcode 141] Linked List Cycle
- leetcode 141: Linked List Cycle
- [Leetcode]#141 Linked List Cycle
- leetCode #141 Linked List Cycle
- preparedstatement添加操作
- kafka初探
- iBET Sport Books Extended Rebate 0.35% Bonus(iBET, iBET Online Casino Malaysia, iBET Rebate Bonus, i
- 滑动窗口2
- Android6.0运行时权限。
- leetcode 141:Linked List Cycle 问题与解答
- 1037.在霍格沃茨找零钱(20)
- js字符串长度赋值
- Web开发之JS浏览器对象
- 【机器学习】KNN k近邻分类算法
- MapReduce工作机制
- appcan webbiew 使用备忘
- 基于openstack二次开发IaaS平台:Solid
- 新手关于 export default connect react-redux 的理解