LeetCode刷题笔记第876题:链表的中间结点

LeetCode刷题笔记第876题:链表的中间结点

想法:
设置快慢两个指针,快指针每次移动两个单位,慢指针每次移动一个单位,当快指针遍历完整个链表时,慢链表刚好抵达链表的中间结点。

# Definition for singly-linked list.
# class ListNode:
#     def __init__(self, val=0, next=None):
#         self.val = val
#         self.next = next
class Solution:
    def middleNode(self, head: ListNode) -> ListNode:
        # 设置快慢指针
        slow = fast = head
        # 每次移动快指针比慢指针多移动一个单位
        while fast and fast.next:
            slow = slow.next
            fast = fast.next.next
        return slow

你可能感兴趣的:(LeetCode刷题,链表,leetcode,数据结构)