876. Python 2 Solution
Python 2 Solution:\n\n 1st Solution use fast and slow pointers: fast pointer move 2 node as one step, while slow pointer move 1 node as one step. When the fast 
Python 2 Solution:\n\n* 1st Solution use fast and slow pointers: fast pointer move 2 node as one step, while slow pointer move 1 node as one step. When the fast pointer reach the end, return slow. Run time O(L), space O(1)\n\n```\n    def middleNode(self, head: ListNode) -> ListNode:\n        slow = fast = head\n        while fast and fast.next:\n            slow, fast = slow.next, fast.next.next\n        return slow\n```\n\n* 2nd Solution use a list to represent a linked list, while knowing it\'s length immediately after representing the linked list. Return the middle element of the representing list. Run time O(L), space O(L)\n\n```\n    def middleNode(self, head: ListNode) -> ListNode:\n        ll = [head]\n        while ll[-1].next:\n            ll.append(ll[-1].next)\n        return ll[len(ll)//2]  \n```
['Two Pointers', 'Python']