피드로 돌아가기
Palindrome Linked List
Dev.toDev.to
Backend

O(1) Space 달성을 위한 Slow-Fast Pointer 기반 리스트 역전 설계

Palindrome Linked List

Jaspreet singh2026년 6월 12일4intermediate

Context

Singly Linked List의 단방향 탐색 제약으로 인한 양끝단 요소 비교의 어려움 발생. ArrayList를 활용한 Brute Force 방식은 O(N)의 추가 공간을 소모하는 메모리 효율성 한계 존재.

Technical Solution

  • Slow-Fast Pointer 기법을 통한 전체 리스트의 정확한 중간 지점 식별
  • 리스트 후반부를 In-place 방식으로 Reverse 하여 역방향 탐색 가능 구조 확보
  • 원본 전반부와 역전된 후반부를 노드 단위로 순차 비교하는 대칭성 검증 로직 구현
  • 추가 메모리 할당 없는 포인터 조작만으로 공간 복잡도 최적화
  • 리스트의 홀수/짝수 길이 케이스를 모두 수용하는 포인터 이동 설계

1. Linked List 문제 해결 시 Random Access 가능 여부를 먼저 검토

2. 추가 공간 사용 없이 중간 지점을 찾아야 할 때 Slow-Fast Pointer 패턴 적용

3. In-place Reverse를 통한 공간 복잡도 최적화 가능성 분석

원문 읽기