leetcode141. Linked List Cycle
来源:互联网 发布:stm32 pid控制算法 编辑:程序博客网 时间:2024/06/15 16:37
leetcode141题是判断链表是否有环,最常用的方法是用两个指针,一个快一个慢,快的是慢的速度的一倍,这样如果有环的话两个一定会相遇。这样最慢需要遍历2N遍就可以完成判断。自己还想了一种方法,这种方法坏处是需要破坏链表,但是需要N遍就可以AC.先写第一种方法
class Solution {public: bool hasCycle(ListNode *head) { ListNode *fast = head; ListNode *slow = head; while(fast != NULL && fast->next != NULL) { slow = slow->next; fast = fast->next->next; if(slow == fast) return true; } return false; }};
第二种方法需要破坏链表结构,但是可以判断,可以AC。
class Solution {public: bool hasCycle(ListNode *head) { ListNode *cur = NULL; ListNode *pre = NULL; if(head != NULL) cur = head->next; while(cur) { if(cur == head) //判断是否指向头结点 return true; pre = cur; cur = cur->next; pre->next = head; //把遍历过的节点全指向头结点 } return false; }};
0 0
- LeetCode141:Linked List Cycle
- leetcode141. Linked List Cycle
- leetcode141: Linked List Cycle
- leetcode141 Linked List Cycle
- LeetCode141. Linked List Cycle
- leetcode141. Linked List Cycle
- leetcode141~Linked List Cycle
- LeetCode141. Linked List Cycle
- leetcode141. Linked List Cycle
- Leetcode141. Linked List Cycle
- Leetcode141. Linked List Cycle
- leetcode141. Linked List Cycle
- LeetCode141. Linked List Cycle
- Leetcode141. Linked List Cycle
- Leetcode141. Linked List Cycle
- LeetCode141—Linked List Cycle
- LeetCode141之Linked List Cycle java题解
- Leetcode141 - Linked List Cycle(链表)
- JAVA排序算法---快速排序
- 深入理解学习Git工作流
- Android Studio系列-签名打包
- C++第1次实验\1
- [POJ1386]Play on Words 做题笔记
- leetcode141. Linked List Cycle
- Unity插件DOTween教程
- POJ-1325-Machine Schedule-最小点覆盖(二分图-匈牙利算法)
- Sublimetext 3 常用插件
- 【零基础入门学习Python笔记011】一个打了激素的数组2
- C++第二次实验1-1
- unix系统下安装64位oracle 10g客户端 以及升级到10.2.0.5(翻译mos文章ID 782923.1)
- c++第二次上机-1
- 生成丶清除指定目录下的HTML文件