본문 바로가기
알고리즘

[LeetCode] 101. Symmetric Tree

by irerin07 2023. 12. 5.
728x90
class Solution {
    public boolean isSymmetric(TreeNode root) {
        if (root == null) {
            return true; //최상위 노드가 null 이라면 true 반환
        }
        
        return isSymmetricHelper(root.left, root.right); //추가 메서드 생성하여 좌측 우측 노드 전달
    }
    
    public boolean isSymmetricHelper(TreeNode p, TreeNode q) {
        if (p == null || q == null) { 
            return p == q; // 두 노드중 하나가 null 이라면 두 노드를 비교한 값을 반환
        }
        
        if (p.val != q.val) {
            return false; // 두 노드의 값이 다르다면 false 반환
        }
        
        return isSymmetricHelper(p.left, q.right) && isSymmetricHelper(p.right, q.left); //dfs 재귀
    }
}
728x90

'알고리즘' 카테고리의 다른 글

[LeetCode] 110. Balanced Binary Tree  (0) 2023.12.05
[LeetCode] 104. Maximum Depth of Binary Tree  (0) 2023.12.05
[LeetCode] 100. Same Tree  (0) 2023.12.04
array partition  (0) 2023.09.30
Leet Code 412  (0) 2023.07.25