반응형
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(알고리즘 문제풀이 접근)
반응형
'알고리즘 풀이' 카테고리의 다른 글
.leetcode(101. Symmetric Tree) (0) | 2022.05.11 |
---|---|
.leetcode(104. Maximum Depth of Binary Tree) (0) | 2022.05.11 |
.leetcode(102. Binary Tree Level Order Traversal) (0) | 2022.05.11 |
.leetcode(145. Binary Tree Postorder Traversal) (0) | 2022.05.11 |
.leetcode(94. Binary Tree Inorder Traversal) (0) | 2022.05.10 |