Step-by-Step

[Java] Daily LeetCode Challenge 226. Invert Binary Tree 본문

언어/JAVA

[Java] Daily LeetCode Challenge 226. Invert Binary Tree

희주(KHJ) 2023. 2. 18. 14:24

https://leetcode.com/problems/invert-binary-tree/

 

Invert Binary Tree - LeetCode

Invert Binary Tree - Given the root of a binary tree, invert the tree, and return its root.   Example 1: [https://assets.leetcode.com/uploads/2021/03/14/invert1-tree.jpg] Input: root = [4,2,7,1,3,6,9] Output: [4,7,2,9,6,3,1] Example 2: [https://assets.lee

leetcode.com

Easy.. 그만!! Medium 나왔으면 좋겠다😂

 

트리의 모든 레벨에서 좌우를 반전시켜주면 된다

DFS 돌면서 노드 채워주면 됨!

 

 

[코드]

class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null)
            return null;

        TreeNode ans = new TreeNode(root.val, root.left, root.right);
        setTree(root, ans);

        return ans;
    }

    public void setTree(TreeNode node, TreeNode now){
        // leaf
        if(node.left == null && node.right == null)
            return ;

        if(node.left == null){
            now.right = null;
            now.left = new TreeNode(node.right.val);
            setTree(node.right, now.left);
        }else if(node.right == null){
            now.right = new TreeNode(node.left.val);
            now.left = null;
            setTree(node.left, now.right);
        }else {
            now.right = new TreeNode(node.left.val);
            now.left = new TreeNode(node.right.val);
            setTree(node.left, now.right);
            setTree(node.right, now.left);
        }
    }
}

 

 

 

 

Comments