LeetCode 2095. Delete the Middle Node of a Linked List

2026. 1. 17. 00:17·코딩테스트/LeetCode

Delete the Middle Node of a Linked List

 

Problem

You are given the head of a linked list. Delete the middle node, and return the head of the modified linked list.

The middle node of a linked list of size n is the ⌊n / 2⌋th node from the start using 0-based indexing, where ⌊x⌋ denotes the largest integer less than or equal to x.

    For n = 1, 2, 3, 4, and 5, the middle nodes are 0, 1, 1, 2, and 2, respectively.



Example 1:

Input: head = [1,3,4,7,1,2,6]
Output: [1,3,4,1,2,6]
Explanation:
The above figure represents the given linked list. The indices of the nodes are written below.
Since n = 7, node 3 with value 7 is the middle node, which is marked in red.
We return the new list after removing this node. 

Example 2:

Input: head = [1,2,3,4]
Output: [1,2,4]
Explanation:
The above figure represents the given linked list.
For n = 4, node 2 with value 3 is the middle node, which is marked in red.

Example 3:

Input: head = [2,1]
Output: [2]
Explanation:
The above figure represents the given linked list.
For n = 2, node 1 with value 1 is the middle node, which is marked in red.
Node 0 with value 2 is the only node remaining after removing node 1.



Constraints:

    The number of nodes in the list is in the range [1, 105].
    1 <= Node.val <= 105

 


 

Solution

The key requirements of this problem are as follows:

  1. Delete the middle node using 0-based indexing.
  2. Return the modified linked list after removing the middle node.

To satisfy these requirements, I used a two-pointer approach.

 

First, initialize three pointers : left, right and prev, all pointing to head.

Using the two-pointer, when tthe left moves to the next node, the right moves two steps at a time.


Therefore, when right reaches the end of the linked list, the left is located at the middle node.

 

During the iteration, prev always keeps tracking just before left.

 

After the end of the loop, left points the middle node and prev.next points to left.

 

By setting prev.next = left.next, the middle node is skipped and removed from the linked list.

 

Since a linked list is connected through next references, once the link is changed, the removed node is no longer reachable and will be deleted by garbage collector.

 

If the list contains only one node or is empty, return None directly.

 

class Solution(object):
    def deleteMiddle(self, head):
        left = head
        right = head
        prev = head

        if not head or not head.next:  
            return None

        while right and right.next:
            prev = left
            left = left.next
            right = right.next.next

        prev.next = left.next

        return head

 


https://github.com/K-MarkLee/LeetCode-Practice

 

저작자표시 비영리 변경금지 (새창열림)

'코딩테스트 > LeetCode' 카테고리의 다른 글

LeetCode 206. Reverse Linked List  (0) 2026.01.22
LeetCode 328. Odd Even Linked List  (0) 2026.01.21
LeetCode 649. Dota2 Senate  (0) 2026.01.10
LeetCode 933. Number of Recent Calls  (0) 2026.01.09
LeetCode 394. Decode String  (0) 2026.01.07
'코딩테스트/LeetCode' 카테고리의 다른 글
  • LeetCode 206. Reverse Linked List
  • LeetCode 328. Odd Even Linked List
  • LeetCode 649. Dota2 Senate
  • LeetCode 933. Number of Recent Calls
코드 유랑자 승열
코드 유랑자 승열
코드 유랑자 승열의 프로그래밍 일지를 남기는 공간입니다.
  • 코드 유랑자 승열
    승열의 프로그래밍 시네마
    코드 유랑자 승열
  • 전체
    오늘
    어제
  • 링크

    • 깃허브 보러가기
    • 링크드인 보러가기
    • 카테고리
      • 코딩테스트
        • LeetCode
        • BaekJoon
      • TIL and WIL
        • TIL
        • WIL
      • 주말스터디
      • 내일배움캠프
        • 사전캠프 강의 (SQL)
      • 용어정리
        • Python
        • Python-Library
        • Machine-Learning
        • Deep-Learning
        • AI 활용
        • LLM & RAG
        • Docker
        • Django
        • SQL
        • Java Script
        • etc
      • Daily 코드카타
        • SQL
        • Python 알고리즘
      • 임시저장
      • 보류
  • 태그

    RAG
    티스토리챌린지
    django
    llm
    vector db
    오블완
    langchain
    template
    View
    word2vec
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
코드 유랑자 승열
LeetCode 2095. Delete the Middle Node of a Linked List
상단으로

티스토리툴바