✅Python with clear explanation
While slow moves one step forward, fast moves two steps forward.\nFinally, when fast reaches the end, slow happens to be in the middle of the linked list.\nFor 
While slow moves one step forward, fast moves two steps forward.\nFinally, when fast reaches the end, slow happens to be in the middle of the linked list.\nFor example, head = [1, 2, 3, 4, 5], I bolded the slow and fast in the list.\nstep 0: slow: [**1**, 2, 3, 4, 5], fast: [**1**, 2, 3, 4, 5]\nstep 1: slow: [1, **2**, 3, 4, 5], fast: [1, 2, **3**, 4, 5]\nstep 2: slow: [1, 2, **3**, 4, 5], fast: [1, 2, 3, 4, **5**]\nend because fast cannot move forward anymore and return [3, 4, 5]\n```\nclass Solution:\n    def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]:\n        slow=fast=head\n        while fast and fast.next:\n            slow=slow.next\n            fast=fast.next.next\n        return slow\n```\n\n\n\nUpvote if liked.\n\n\n
['Two Pointers', 'Python']