LeetCode 876
最简单的方法就是先遍历一遍,求出长度n,然后取 (n+1)/2, 从前到后在做半个遍历找到对应的指针。
还有一个方法就是做快慢指针,快指针每次前进两格,慢指针每次前进一格,快指针到尾部的时候,慢指针应该在一半的位置。
def middleNode(self, head: ListNode) -> ListNode:
if head == None: return None
slow = head
fast = head.next
while fast != None:
slow = slow.next
fast = fast.next
if (fast != None):
fast = fast.next
return slow