[Python] short solution, explained
Use two pointers: slow and fast, when fast will reach the end, slow one will be in the middle of list.\n\n#### Complexity\nTime complexity is O(n) ~ 1.5n, space
Use two pointers: slow and fast, when fast will reach the end, slow one will be in the middle of list.\n\n#### Complexity\nTime complexity is `O(n) ~ 1.5n`, space complexity is` O(1)`.\n\n#### Code\n```python\nclass Solution:\n    def middleNode(self, head):\n        slow = head\n        fast = head\n\n        while fast and fast.next:\n            slow = slow.next\n            fast = fast.next.next\n        return slow\n```\n\nIf you have any question, feel free to ask. If you like the explanations, please **Upvote!**
['Two Pointers']