leetcode之Linked List Cycle II
来源:互联网 发布:电动踏板车 知乎 编辑:程序博客网 时间:2024/05/22 16:25
这题在I的基础上不仅要判断,更要找出来是哪个节点开始结合。采用的方法是计算出第一次相遇的时候每次挪一步的那个一共走了x步,再算出来环的大小y。那么x - y就等于从头开始走的时候,距离结合点的距离等于相遇点的距离的那个点。然后2个点一起走,相遇的那个点就一定是结合点啦。代码如下:
# Definition for singly-linked list.# class ListNode(object):# def __init__(self, x):# self.val = x# self.next = Noneclass Solution(object): def detectCycle(self, head): """ :type head: ListNode :rtype: ListNode """ if not head: print '1111' return None if not head.next: return None twostep = head.next.next distance1 = 0 left = head #distance1是相遇前一共走了多少步,cycle是环的大小。 while True: if head.next == twostep: distance1 = distance1 + 1 cycle = 0 head1 = head.next while True: if head1.next != head.next: cycle = cycle + 1 head1 = head1.next else: cycle = cycle + 1 for i in range(distance1 - cycle): left = left.next while True: if left == head.next: return left else: left = left.next head = head.next else: head = head.next distance1 = distance1 + 1 if not twostep: return None elif not twostep.next: return None else: twostep = twostep.next.next
0 0
- leetcode之linked List cycle && linked List cycle II
- LeetCode之Linked List Cycle II
- LeetCode之Linked List Cycle II
- leetcode之Linked List Cycle II
- leetcode之Linked List Cycle II
- LeetCode之Linked List Cycle II
- leetcode之Linked List Cycle II
- Leetcode之Linked List Cycle II
- Leetcode之Linked List Cycle II 问题
- LeetCode 之 Linked List Cycle II
- 【LeetCode】 Linked List Cycle II
- Leetcode: Linked List Cycle II
- <Leetcode>Linked List Cycle II
- [LeetCode] Linked List Cycle II
- Leetcode: Linked List Cycle II
- LeetCode:Linked List Cycle II
- Leetcode Linked List Cycle II
- [LeetCode]Linked List Cycle II
- ubuntu开发环境搭建(一)ssh安装及配置
- C# SaveFileDialog的用法保存文件
- 百度收录带www和不带www域名的不同和解决办法
- 欢迎使用CSDN-markdown编辑器
- C++ 排序函数 sort(),qsort()的用法 / 同时可以学习回调函数
- leetcode之Linked List Cycle II
- Android中Canvas绘图之PorterDuffXfermode使用及工作原理详解
- (java)Best Time to Buy and Sell Stock II
- 样式的继承
- 黑马程序员_反射的概述和获取class对象的三种方式
- 最大似然估计
- asp.net 中 sql dataset 显示数据
- leetcode290---Word Pattern
- 图的表示方法和C++实现