https://leetcode.cn/problems/middle-of-the-linked-list/
给你单链表的头结点 head ,请你找出并返回链表的中间结点。
如果有两个中间结点,则返回第二个中间结点。
示例 1:
输入:head = [1,2,3,4,5]
输出:[3,4,5]
解释:链表只有一个中间结点,值为 3 。
class Solution:
def middleNode(self, head: Optional[ListNode]) -> Optional[ListNode]:
# 快慢双指针、迭代
# 无需展示全部链,所以不需要设置虚拟头节点
# 思路:fast走2步,slow走1步
slow, fast = head, head
while fast and fast.next:
fast = fast.next.next
slow = slow.next
return slow