[题解][LeetCode][Linked List Cycle]

来源:互联网 发布:编辑录音的软件 编辑:程序博客网 时间:2024/05/16 11:14

题目:

Given a linked list, determine if it has a cycle in it.

Follow up:
Can you solve it without using extra space?


题解:

我们需要一快一慢两指针。

快的一次走两步,慢的一次走一步。

如果有环,那么这两个指针在两次循环内肯定会相遇。


Code:

# 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):        p1 = head;        p2 = head;        while (p2 and p2.next):        p1 = p1.next        p2 = p2.next.next        if (p1 == p2):        return True        return False


Ps:

Python里的boolean值,首字母要大写:

True  &  False

0 0