Talk is cheap.
/**
* Definition for singly-linked list.
* type ListNode struct {
* Val int
* Next *ListNode
* }
*/
func entryNodeOfLoop(head *ListNode) *ListNode{
pre := head
post := head
for pre != nil && pre.Next != nil {
pre = pre.Next.Next
post = post.Next
if pre == post {
pre = head
for pre != post {
pre = pre.Next
post = post.Next
}
return pre
}
}
return nil
}