Google 태그 관리자 아이콘

알고리즘 풀이

.leetcode(250. Count Univalue Subtrees)

silvergoni 2022. 5. 12. 09:10
반응형

https://leetcode.com/problems/count-univalue-subtrees/

 

1. 2022/05/12 시도

소요시간: 26분

class Solution {
    int counter = 0;
    public int countUnivalSubtrees(TreeNode root) {
        recursive(root);
        return counter;
    }
    
    private boolean recursive(TreeNode root) {
        if (root == null) {
            return true;
        }

        boolean l = recursive(root.left);
        boolean r = recursive(root.right);
        
        boolean c = false;
        if (root.left == null && root.right == null) {
            counter++;
            c=true;
        } else if (root.left == null && r && root.right.val == root.val) {
            counter++;
            c=true;
        } else if (root.right == null && l && root.left.val == root.val) {
            counter++;
            c=true;
        } else if (root.left != null && root.right != null && r && l
                   && root.left.val == root.val && root.right.val == root.val) {
            counter++;
            c=true;
        }
        
        return c;
    }
}

풀이 접근 과정

순회를 하는 메소드를 만들고 이전에 노드가 univalSubtree인지 여부를 boolean값으로 리턴한다.
그리고 그걸 알맞게 체크한 후에 순회를 이어간다.

 

느낀점

  • 예외처리를 확인하면서 풀긴 풀었는데 굉장히 찜찜하다.
  • 부모값을 넘겨주면 조금 더 쉽게 풀 수 있는 것으로 확인했는데 다음에 풀어보도록 하자. 전체 순회할 수 있도록 잘 코딩해야한다.

알고리즘 정리노트: .leetcode(알고리즘 문제풀이 접근)

반응형