leetcode刷题日记——Linked List Cycle
来源:互联网 发布:中超风云球员数据 编辑:程序博客网 时间:2024/05/16 18:24
Given a linked list, determine if it has a cycle in it.
Follow up:
Follow up:
Can you solve it without using extra space?
问题分析:判断一个单链表是否存在环,要求不使用额外的空间。刚开始对着题目发了半天呆,想着如果用循环,如果存在环就是死循环,后来想想是不是有什么策略来在循环过程中判断是否存在环然后退出,这样就避免了死循环。具体做法就是每访问一个节点,就将这个节点的值设置为NULL,然后不断去判断next节点所指的值,如果存在环,则在循环的过程中,肯定最后一个节点的下一个节点就会是之前被访问过并且值被设置为NULL的节点,这种情况出现了,return返回就好了,如果不存在那种情况,就不存在环,也就不存在死循环了。代码很简单,如下:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: bool hasCycle(ListNode *head) { if(head==NULL) return false; ListNode *p=head; while(p->next){ if(p->next->val==NULL) return true; p->val=NULL; p=p->next; } return false; }};
0 0
- leetcode刷题日记——Linked List Cycle
- leetcode刷题日记—— Linked List Cycle II
- LeetCode刷题笔录Linked List Cycle
- LeetCode——Linked List Cycle
- LeetCode——Linked List Cycle II
- LeetCode——Linked List Cycle
- Linked List Cycle —— Leetcode
- LeetCode——Linked List Cycle II
- leetcode 141 —— Linked List Cycle
- LeetCode题解——Linked List Cycle
- LeetCode——141. Linked List Cycle
- LeetCode——Linked List Cycle
- LeetCode — Linked List Cycle 解题报告
- leetcode刷题日记——Remove Linked List Elements
- leetcode刷题日记——Palindrome Linked List
- leetCode刷题归纳-linked list(141. Linked List Cycle&& Add to List 142. Linked List Cycle II)
- [算法][LeetCode]Linked List Cycle & Linked List Cycle II——单链表中的环
- [LeetCode]Linked List Cycle & Linked List Cycle II——单链表中的环
- C++ 右值引用
- 【AC自动机】hdu2222 hdu2896 hdu3065 zoj3430 poj2778 hdu2243
- 最大连续和(分治法)
- linux 每次关机后重启都要手动source /etc/profile
- 关于控件getWidth和getHeight方法都为0的解释及解决方法
- leetcode刷题日记——Linked List Cycle
- Java之美[从菜鸟到高手演变]系列之博文阅读导航
- Java中 FileReader的中文乱码问题
- Android实战之 Jmail发送邮件(无需跳转到邮件客户端)
- ViewPager
- Java泛型编程最全总结 http://qiemengdao.iteye.com/blog/1525624
- AM5728概述(2)
- JAVA泛型详解 http://blog.csdn.net/mtawaken/article/details/9813581
- 教你理解复杂的C-C++声明(上)