99클럽 코테 스터디 9일차 TIL Invert Binary Tree

방지환·2024년 6월 2일

코테 스터디

목록 보기
13/37

Invert Binary Tree

  • 문제 풀이

    1. 주어진 트리에서 하위 노드 left와 right를 스왑하는 문제이다.
    2. 스왑하기위해 temp의 트리노드 하나를 선언하여 담아준다.
    3. 그 후 left, rigth를 스왑해준다.
    4. 이 방법은 반복하며 자식 노드들 왼쪽, 오른쪽을 재귀로 돌려준다.
    5. 스왑한 root를 반환한다.
  • 풀이 소스

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode() {}
 *     TreeNode(int val) { this.val = val; }
 *     TreeNode(int val, TreeNode left, TreeNode right) {
 *         this.val = val;
 *         this.left = left;
 *         this.right = right;
 *     }
 * }
 */
class Solution {
    public TreeNode invertTree(TreeNode root) {
        if(root == null){
            return null;
        }
        TreeNode temp = root.left;
        root.left = root.right;
        root.right = temp;
        
        invertTree(root.right);
        invertTree(root.left);

        return root;
    }
}
  • 오늘의 회고

    • 문제 시도 및 해결
      • 자바에서 스왑하는 방법과 같은 방식으로 하면 된다.
      • 모든 노드에 대해서 스왑을 해줘야함으로 재귀함수를 돌린다.
    • 학습 내용
      • binary tree를 통한 재귀함수 공부
  • 다음 배울것
    • 부족한 자바 문법
    • 스프링 공부
    • 알고리즘
    • 코테 문제 풀이

0개의 댓글