Menu
CoddyTech

Reverse Linked List

next 배열에 저장된 단일 연결 리스트가 주어집니다. 노드 i는 노드 next[i]를 가리키고, -1은 리스트의 끝을 나타내며, 헤드는 노드 0입니다. 노드는 리스트의 순서대로 저장되어 있지 않으므로 연결을 따라가세요.

모든 연결을 반대로 바꿔 리스트를 뒤집으세요. 그러면 기존의 마지막 노드가 헤드가 되고, 노드 0은 -1을 가리키는 마지막 노드가 됩니다. 입력과 길이가 같은 업데이트된 next 배열을 반환하세요.

함수

reverseList(next: integer-array) → integer-array
nextinteger-array
각 노드가 연결되는 노드의 인덱스이며, 마지막 노드의 경우 -1입니다.
반환값integer-array
뒤집힌 목록의 다음 배열

제약 조건

  • 1 ≤ next.length ≤ 5000
  • 각 next[i]는 -1이거나 0부터 next.length-1까지의 노드 인덱스입니다.
  • 노드 0에서 시작하여 목록은 모든 노드를 정확히 한 번 방문한 다음 -1에 도달합니다. 순환은 없습니다.

예제

입력
next = [1, 2, 3, -1]
출력
[-1, 0, 1, 2]
설명
목록은 0 → 1 → 2 → 3입니다. 이를 뒤집으면 3 → 2 → 1 → 0이므로, 노드 3은 2에 연결되고, 노드 2는 1에, 노드 1은 0에, 노드 0은 -1에 연결됩니다.

lock icon제출 시 숨은 테스트 +11개

challenge icon

후속 질문

목록에서 left 위치와 right 위치 사이의 부분만 뒤집고, 그 앞뒤에 있는 노드는 제자리에 그대로 둘 수 있나요?

코드 초기화
def reverseList(next):
    # 여기에 코드를 작성하세요
테스트 케이스

케이스 1

케이스 2

케이스 3

입력

next = [1, 2, 3, -1]

기대값

[-1, 0, 1, 2]