原题: Given a linked list, return the node where the cycle begins. If there is no cycle, returnnull. =>找到单向链表的环的起点,若没有环,返回null Follow up: Can you solve it without using extra space? =>能否不使用额外的空间。 /*
题目描述: 思考: 建立一个list,存储节点,出现重复,就返回。 class Solution:def EntryNodeOfLoop(self, pHead):if pHead is None or pHead.next is None:return Nonemem = []while pHead not in mem:mem.append(pHead)pHead = pHead.n
JZ23链表中环的入口结点 思路: 采用双指针,设定快指针fast_p是慢指针slow_p的2倍,如果有环,则当两指针第一次相遇时慢指针一定不可能在环中走超过一圈,因此假设头结点到环的开头距离为a,环开头到第一次相遇节点的距离为b,第一次相遇到环开头距离为c,因此快指针fast_p走过的距离=a + (b+c)k +b (k为大于1的正整数),慢指针slow_p走过的距离= a + b