14주차 · 트리와 이진 트리
보통트리DFS재귀

트리 뒤집기

이진 트리의 루트 root가 주어져요. 모든 노드에서 왼쪽 자식과 오른쪽 자식을 맞바꾼 트리의 루트를 반환해요.

루트에서 한 번만 바꾸는 게 아니라 모든 깊이에서 바꿔야 해요.

트리는 레벨 순서 배열로 주어져요. null은 자식이 없다는 뜻이고, 채점기가 이 배열을 노드로 바꿔서 root로 넘겨줘요. 노드는 val, left, right를 가지며, 새 노드가 필요하면 TreeNode로 만들 수 있어요.

반환값도 트리예요. 채점기가 다시 레벨 순서 배열로 바꿔서 비교하니까, 노드를 그대로 반환하면 돼요.

예시

예시 1
예시 2
예시 3

제한 사항

  • 노드 개수는 0개 이상 10,000개 이하예요.
  • -1,000 ≤ node.val ≤ 1,000
각 노드에서 두 자식을 맞바꾸고, 그 두 자식에도 같은 일을 재귀로 맡기면 끝이에요. 빈 노드는 그대로 돌려보내요.
javascript
function invertTree(root) {
if (root === null) return null;
const left = invertTree(root.left);
root.left = invertTree(root.right);
root.right = left;
return root;
}
에디터를 불러오고 있어요…
코드를 작성하고를 눌러 예시 테스트를 확인해 보세요.