Same Tree

Updated:

두 개의 tree가 동일한지 체크를 하는문제이다.

순회를 하면 되는데 틀린것은 3가지의 경우가 존재한다

  1. 왼쪽트리가 null 인데, 오른쪽트리가 null이 아닌 경우
  2. 왼쪽트리가 null이 아닌데, 오른쪽트리가 null인 경우
  3. 왼쪽트리의 val값과 오른쪽트리의 val값이 다른경우

이 경우를 제외하면서 순회를 해주면 된다.

왼쪽트리, 오른쪽트리 둘다 필요하기 때문에, Parameter를 계속 전달을 해준다

by Java

/**
 * Definition for a binary tree node.
 * public class TreeNode {
 *     int val;
 *     TreeNode left;
 *     TreeNode right;
 *     TreeNode(int x) { val = x; }
 * }
 */
class Solution {
    public boolean isSameTree(TreeNode p, TreeNode q) {
        return checksame(p,q);
    }
    private boolean checksame(TreeNode a,TreeNode b) {
        if(a==null && b==null) return true;
        if(a!=null && b==null) return false;
        if(a== null && b!=null) return false;
        if(a.val != b.val) return false;
        return checksame(a.left,b.left) && checksame(a.right,b.right);
    }
}

Leave a comment