코딩테스트/leetcode

99클럽 코테 스터디 13일차 TIL, 완전탐색( Reverse Odd Levels of Binary Tree)

feel2 2024. 6. 3. 21:01
반응형

1. 문제 정의

2. 문제 접근

dfs를 이용하여 완전탐색을 해주면 될 것 같다.

3. 문제 풀이

  1. 1 인덱스 부터 시작하여 dfs시작한다.
  2.  depth를 같이 넘겨주어 depth가 홀수이면 양쪽 노드의 값을 교환해준다.

4. 코드

/**
 * 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 reverseOddLevels(TreeNode root) {
        dfs(root.left, root.right, 1);
        return root;
    }

    private void dfs(TreeNode node1, TreeNode node2, int depth){
        if(node1 == null || node2 == null) return;

        if(depth % 2 == 1){
            int temp = node1.val;
            node1.val = node2.val;
            node2.val = temp;
        }
        dfs(node1.right,node2.left,depth+1);
        dfs(node1.left,node2.right,depth+1);
    }
}

5. 회고

계속해서 그래프 dfs를 풀다보니 조금 감이 잡히는 것  같다. 이 감을 잃지 않는데 집중하자.

반응형