728x90
# 오늘의 학습 키워드
이분탐색(이진탐색)
# 오늘의 문제
https://leetcode.com/problems/symmetric-tree/description/
Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).
# 나의 풀이방식
오늘의 문제는 root 노드를 기준으로 좌우대칭 여부를 return하는 문제였다.
1. 대칭을 확인하기 위한 재귀함수 구현
2. 노드값이 null인 경우 처리
- 비교하는 값이 둘다 null이면 true, 한쪽만 null이면 false 반환
3. 노드가 다른 경우 대칭이 아니므로 false 반환
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 boolean isSymmetric(TreeNode root) {
return compareTo(root.left, root.right);
}
private boolean compareTo(TreeNode left, TreeNode right){
// null 처리
if(left == null && right == null){
return true;
}else if(left == null || right == null) { // 무조건 false인 경우
return false;
}
// 노드를 비교해서 동일할 경우 재귀함수로 반복
if(left.val == right.val){
return compareTo(left.left, right.right) && compareTo(left.right, right.left);
}else{ // 노드가 다를 경우 false 반환
return false;
}
}
}
# 오늘의 회고
1depth까지는 단순 값비교라 어렵지 않았지만 2depth부터는 대칭으로 비교해야했는데 재귀함수 쓰는건 알겠지만 어떻게 구현해야할지 한참 고민했다.
이진탐색 대칭 문제나오면 바로 풀수있는 그날이 오기를..... ^.ㅜ
반응형
'개발 공부 > TIL(Today I Learned)' 카테고리의 다른 글
99클럽 코테 스터디 16일차 TIL 최소직사각형 (0) | 2024.08.07 |
---|---|
99클럽 코테 스터디 15일차 TIL 모의고사 (0) | 2024.08.05 |
99클럽 코테 스터디 13일차 TIL Search in a Binary Search Tree (0) | 2024.08.04 |
99클럽 코테 스터디 12일차 TIL 문자열 내림차순으로 배치하기 (0) | 2024.08.03 |
99클럽 코테 스터디 11일차 TIL 정수 내림차순으로 배치하기 (0) | 2024.08.02 |