https://leetcode.com/problems/invert-binary-tree/?envType=study-plan-v2&envId=top-interview-150
1. 문제 분석
문제분석
--------------------
- 이진트리 root가 주어질 때, left, right를 바꿔라.
제한조건
--------------------
- 이진트리 노드의 갯수는 0 ~ 100이다.
- -100 <= Node.val <= 100
2. 접근 방법
접근방법
--------------------
재귀적으로 left와 right를 바꿔준다.
3. 코드
/**
* Definition for a binary tree node.
* function TreeNode(val, left, right) {
* this.val = (val===undefined ? 0 : val)
* this.left = (left===undefined ? null : left)
* this.right = (right===undefined ? null : right)
* }
*/
var invertTree = function(root) {
if (!root) {
return null;
}
let prevLeft = root.left;
root.left = root.right;
root.right = prevLeft;
invertTree(root.left);
invertTree(root.right);
return root;
};
4. 복잡도 분석
- 시간복잡도: O(n)
- 공간복잡도: O(log n ~ n) 좌우 균형을 이룰 경우: log n, 편향된 경우: n
Easy 난이도는 간단하게 재귀로 접근하는 쉬운 문제인 것 같다.
'Leetcode' 카테고리의 다른 글
[Leetcode] 105. Construct Binary Tree from Preorder and Inorder Traversal - JS (0) | 2024.11.16 |
---|---|
[Leetcode] 101. Symmetric Tree -JS (0) | 2024.11.15 |
[Leetcode] 100. Same Tree - JS (0) | 2024.11.13 |
[Leetcode] 104. Maximum Depth of Binary Tree - JS (0) | 2024.11.12 |
[Leetcode] 146. LRU Cache - JS (0) | 2024.11.11 |