101. Symmetric Tree

양성준·2025년 6월 2일

코딩테스트

목록 보기
72/102

문제

https://leetcode.com/problems/symmetric-tree/description/

풀이

class Solution {
    public boolean isSymmetric(TreeNode root) {
        return DFS(root.left, root.right);
    }

    public boolean DFS(TreeNode node1, TreeNode node2) {
        if(node1 == null && node2 == null) {
            return true;
        }

        if(node1 == null || node2 == null) {
            return false;
        }

        if(node1.val != node2.val) {
            return false;
        }

        boolean left = DFS(node1.left, node2.right);
        boolean right = DFS(node1.right, node2.left);

        return left && right;
    }
}
  • root의 왼쪽 오른쪽에 대해 DFS를 따로 타면 되는데,
    mirror인지 확인하려면 node1.left와 node2.right를 비교하고, node1.right와 node2.left를 비교해야한다.
profile
백엔드 개발자

0개의 댓글