😎풀이

트리의 구조를 알고 있다면 풀이가 어렵지 않은 문제이다.

각 트리엔 좌측, 우측 자식 노드가 있을 수도 있고 없을 수도 있다.

즉 동일한 트리인지 확인하려면 자식 요소를 모두 순회하며 각각의 구조와 값을 비교하면 된다.

function isSameTree(p: TreeNode | null, q: TreeNode | null): boolean {
    // 두 노드가 동시에 끝났다면 true
    if(p === null && q === null) return true;
    // 한 노드만 먼저 끝났다면 false
    if(p === null || q === null) return false;
    // 두 노드의 값이 서로 다르다면 false
    if(p.val !== q.val) return false;

    // 재귀적 자식 요소 탐색
    return isSameTree(p.left, q.left) && isSameTree(p.right, q.right);
};
profile
내 지식을 공유할 수 있는 대담함

0개의 댓글