Menu
CoddyTech

Invert Binary Tree

쉬움트리 순회python iconjava iconcpp iconc iconjs icon+10

레벨 순서로 배열 tree에 저장된 이진 트리가 주어집니다. 루트는 인덱스 0에 있고, 인덱스 i에 있는 노드의 자식은 2*i+1(왼쪽)과 2*i+2(오른쪽)에 있으며, -1은 비어 있는 위치를 나타내고, 배열 끝에는 추가 -1 항목이 있을 수 있습니다.

트리를 뒤집으세요. 즉, 모든 노드의 왼쪽 자식과 오른쪽 자식을 서로 바꿔 전체 트리가 거울상으로 되게 하세요. 끝에 -1 항목이 없는 동일한 형식의 뒤집힌 트리를 반환하세요.

함수

invertTree(tree: integer-array) → integer-array
treeinteger-array
레벨 순서로 표현한 이진 트리이며, 빈 자리는 -1로 표시합니다
반환값integer-array
후행 -1 항목이 없는, 레벨 순서로 나열한 미러링된 트리

제약 조건

  • 1 ≤ tree.length ≤ 16383
  • 각 tree[i]는 -1이거나 0 ≤ tree[i] ≤ 1000인 값입니다.
  • tree[0]은 절대 -1이 아니므로 트리에는 노드가 하나 이상 있습니다.
  • 배열은 마지막 노드 뒤에 추가 -1 항목이 올 수 있습니다.
  • 빈 자리의 두 자식도 모두 비어 있으며, 깊이는 최대 14입니다.

예제

입력
tree = [5, 3, 8, 1, 4, -1, 9]
출력
[5, 8, 3, 9, -1, 4, 1]
설명
루트의 자식인 3과 8이 서로 자리를 바꿉니다. 그 아래에서 3 아래에 있던 1과 4는 4와 1로 바뀌고, 오른쪽 자식인 9만 있던 8은 이제 왼쪽에 자식을 두게 됩니다.
challenge icon

후속 질문

반전된 복사본을 만들지 않고 동일한 인덱스 쌍을 사용하여 트리가 자기 자신의 거울상인지 어떻게 확인할 수 있을까요?

코드 초기화
def invertTree(tree):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

tree = [5, 3, 8, 1, 4, -1, 9]

예상 출력

[5, 8, 3, 9, -1, 4, 1]