본문 바로가기
알고리즘

[LeetCode] 100. Same Tree

by irerin07 2023. 12. 4.
728x90

/**
 * 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 isSameTree(TreeNode p, TreeNode q) {
        
        if (p == null && q == null) {
            return true; // 비교 대상인 두개의 노드가 둘 다 null 이라면 동일하므로 true
        }
        
        if (p == null || q == null || p.val != q.val) { 
            return false; //둘 중 하나만 비어있거나, 두 노드의 값이 다르다면 false
        }
        
        return isSameTree(p.left, q.left) && isSameTree(p.right, q.right); //DFS, 재귀호출
    
    }
    
}

728x90

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

[LeetCode] 104. Maximum Depth of Binary Tree  (0) 2023.12.05
[LeetCode] 101. Symmetric Tree  (0) 2023.12.05
array partition  (0) 2023.09.30
Leet Code 412  (0) 2023.07.25
Leet Code 1672  (0) 2023.07.25