LeetCode 141 — Linked List Cycle(C++ Java Python)
来源:互联网 发布:discuz数据备份 编辑:程序博客网 时间:2024/06/05 02:33
题目:http://oj.leetcode.com/problems/linked-list-cycle/
Given a linked list, determine if it has a cycle in it.
Follow up:
Can you solve it without using extra space?
题目翻译:
给定一个链表,确定它是否有环。
进阶:
你可以不使用额外的空间解决它吗?
分析:
使用快慢指针。如果链表有环,则两指针必在某一时刻相等。
C++实现:
/** * 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 *fast = head; ListNode *slow = head; while(fast->next != NULL) { fast = fast->next->next; if(fast == NULL) { return false; } slow = slow->next; if(fast == slow) { return true; } } return false; }};
Java实现:
/** * Definition for singly-linked list. * class ListNode { * int val; * ListNode next; * ListNode(int x) { * val = x; * next = null; * } * } */public class Solution { public boolean hasCycle(ListNode head) {if (head == null) {return false;}ListNode fast = head;ListNode slow = head;while (fast.next != null) {fast = fast.next.next;if (fast == null) {return false;}slow = slow.next;if (fast == slow) {return true;}}return false; }}
Python实现:
# Definition for singly-linked list.# class ListNode:# def __init__(self, x):# self.val = x# self.next = Noneclass Solution: # @param head, a ListNode # @return a boolean def hasCycle(self, head): if head == None: return False fast = head slow = head while fast.next != None: fast = fast.next.next if fast == None: return False slow = slow.next if fast == slow: return True return False
感谢阅读,欢迎评论!
0 0
- LeetCode 141 — Linked List Cycle(C++ Java Python)
- Leetcode #141 Linked List Cycle Python
- [leetcode-141]Linked List Cycle(c)
- [C语言][LeetCode][141]Linked List Cycle
- Leetcode@python Linked List Cycle
- 【leetcode】Linked List Cycle (python)
- 【leetcode】Linked List Cycle (python)
- 【LeetCode】【Python】Linked List Cycle
- Leetcode-Linked List Cycle-Python
- LeetCode 141 -Linked List Cycle ( JAVA )
- LeetCode 142 — Linked List Cycle II(C++ Java Python)
- 【LeetCode】141 Linked List Cycle (java实现)
- [Leetcode] Linked List Cycle (Java)
- [LeetCode][Java] Linked List Cycle
- [Leetcode][python]Linked List Cycle/Linked List Cycle II
- leetcode 141 —— Linked List Cycle
- LeetCode 141 Linked List Cycle(链表判环)
- LeetCode(141)Linked List Cycle
- android仿ios开关按钮
- HDU 1403 Longest Common Substring
- hibernate一级缓存和二级缓存的区别
- java实现多线程
- Fedora删除启动项中的旧内核
- LeetCode 141 — Linked List Cycle(C++ Java Python)
- DatePicker与TimePicker小技巧
- MAX7219的实体电路应用
- ImageView的缩放
- 多线程下载
- java自定义 注解 annotation、标签库tag、监听listener、junit简单测试代码
- 表单提交get和post的区别
- Jquery 插件 DataTable 单元格设为跨行遇到的问题
- POJ 1231 水题