From c56cc52f166212a974bbbf5fc1fae48f30246c1f Mon Sep 17 00:00:00 2001 From: Jinyoung Jeong <80400463+jyoung2419@users.noreply.github.com> Date: Fri, 18 Sep 2026 23:47:09 +0900 Subject: [PATCH] Create 226. Invert Binary Tree --- .../226. Invert Binary Tree" | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 "leetcode3/\354\240\225\354\247\204\354\230\201/226. Invert Binary Tree" diff --git "a/leetcode3/\354\240\225\354\247\204\354\230\201/226. Invert Binary Tree" "b/leetcode3/\354\240\225\354\247\204\354\230\201/226. Invert Binary Tree" new file mode 100644 index 000000000..d94805dff --- /dev/null +++ "b/leetcode3/\354\240\225\354\247\204\354\230\201/226. Invert Binary Tree" @@ -0,0 +1,36 @@ +/** + * 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) + * } + */ +/** + * @param {TreeNode} root + * @return {TreeNode} + */ + +// DFS + 재귀 +// 모든 노드를 한 번씩 방문하면서 각 노드 자식의 위치를 바꿈 +// 시간복잡도 : O(n) n은 노드 개수 (모든 노드를 하나씩 방문하기 때문) +var invertTree = function(root) { + function dfs(node){ + if (node == null){ // 재귀 종료 조건 + return null; + } + + // 왼쪽, 오른쪽 교환 + const temp = node.left; + node.left = node.right; + node.right = temp; + + // 자식 노드에도 같은 작업 수행 + dfs(node.left); + dfs(node.right); + + return node; + } + + return dfs(root); +};