[코테 스터디 14일차 TIL] Symmetric Tree

dev_jubby·2024년 8월 4일
1

코테스터디

목록 보기
14/36


💛 오늘의 학습 키워드

[이진탐색트리] Symmetric Tree



📝 문제

문제 설명

Given the root of a binary tree, check whether it is a mirror of itself (i.e., symmetric around its center).

제한 조건

  • The number of nodes in the tree is in the range [1, 1000]
  • -100 <= Node.val <= 100

입출력 예

Example 1

Input: root = [1,2,2,3,4,4,3]
Output: true


Example 2

Input: root = [1,2,2,null,3,null,3]
Output: false



💬 내 풀이


/**
 * 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) {
        if(root == null) 
            return true;
        
        return isSymmetric(root.left, root.right);
    }

    public boolean isSymmetric(TreeNode left, TreeNode right) {
        
        if(left == null && right == null) return true;
         else if (left == null || right == null) return false;
        
        if (left.val == right.val) {
            return check(left.right, right.left) && check(left.left, right.right);
        }
        
        return true;
    }
}

💻 내 접근 방법

이 문제는 해당 트리의 좌우과 거울에 비친것 처럼 같은지 판별하는 문제이다.

  1. 마찬가지로 재귀 방식으로 구현을 진행하는데, 먼저 left 값과 right 값이 모두 null이면 대칭으로 판별한다.
  2. left, right 값 중 하나만 null 인 경우는 비대칭으로 반별한다.
  3. left 값과 right 값이 같은지 확인해주면 된다.



💦 회고

기본 알고리즘 강의 추천 받습니다…





profile
신입 개발자 쥬비의 기술 블로그 입니다.

0개의 댓글