def test(): head = ListNode.build(5) print("original list") ListNode.show(head) print("reversed list by single assignment") ListNode.show(reverseSingle(head)) head = ListNode.build(5) print("reversed list by tuple assignment") ListNode.show(reverseTuple(head))
return True else: tempSet.add(head.next) head = head.next return False """ Runtime: 56 ms, faster than 51.53% of Python3 online submissions for Linked List Cycle. Memory Usage: 17.6 MB, less than 75.05% of Python3 online submissions for Linked List Cycle. """ def hasCycleByFastSlowPointer(self, head: ListNode) -> bool: if (not (head and head.next)): return False slow = fast = head while (slow and fast and fast.next): slow = slow.next fast = fast.next.next if (slow is fast): return True return False if __name__ == '__main__': head = ListNode.build(2) solution = Solution() result = solution.hasCycleByFastSlowPointer(head) print(result)