Files
leetcode/apps/docs/content/(02-nodal-grid)/linked-list/876_middle-of-the-linked-list.mdx
T

46 lines
1.1 KiB
Plaintext

---
title: '876. Middle of the Linked List'
description: Given the head of a singly linked list, return the middle node of the linked list
icon: dot
topics:
- { name: "Linked List", slug: "linked-list" }
- { name: "Two Pointers", slug: "two-pointers" }
issue: "https://github.com/prdlk/leetcode/issues/82"
sidebar:
label: 'Middle of the Linked List'
badge: 'Easy'
---
### Example 1:
- Input: `head = [1,2,3,4,5]`
- Output: `[3,4,5]`
- Explanation: The middle node of the list is node `3`.
### Example 2:
- Input: `head = [1,2,3,4,5,6]`
- Output: `[4,5,6]`
- Explanation: Since the list has two middle nodes with values `3` and `4`, we return the second one.
### Constraints:
- The number of nodes in the list is in the range [1, 100].
- `1 <= Node.val <= 100`
## Solution
```py
# 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 | None) -> ListNode | None:
slow = fast = head
while fast and fast.next:
fast = fast.next.next
slow = slow.next
return slow
```