
😎풀이
isSubtree
: 서브 트리가 같은지 검사
1-1. 현재 요소(root
)가 null
이라면, 탐색 범위 내에서 subRoot
를 찾을 수 없었다는 의미 이므로 false
반환
1-2. 현재 요소(root
)와 비교 요소(subRoot
)를 비교하여 구조가 같다면 true
반환
1-3. 재귀적으로 subRoot
에 해당하는 값을 root
의 left
와 right
에서 탐색
isSameTree
: a
와 b
의 구조가 같은지 검증
function isSubtree(root: TreeNode | null, subRoot: TreeNode | null): boolean {
if(!root) return false
if(isSameTree(root, subRoot)) return true
return isSubtree(root.left, subRoot) || isSubtree(root.right, subRoot)
};
function isSameTree(a: TreeNode | null, b: TreeNode | null): boolean {
if(!a && !b) return true
if(!a || !b) return false
if(a.val !== b.val) return false
return isSameTree(a.left, b.left) && isSameTree(a.right, b.right)
}